Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.47.0-wmf.14
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ł:Sprawdź
828
31189
551487
544171
2026-08-11T19:36:33Z
Persino
2851
551487
Scribunto
text/plain
return {
["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function()
return "Szablony z dodatkową opcją sprawdzania parametrów";
end;
["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame)
local wikikod=frame.args[1];
local sprawdz_modul=require("Module:Sprawdź");
local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]();
local specjalne_modul=require("Module:Specjalne");
return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,}
end;
["Porównaj"] = function(frame)
local pf=frame:getParent();
local config = pf.args[""] or ""
local brudnopis=pf.args["brudnopis"];
local options = mw.text.split(config, "|")
local templateName = mw.text.trim(options[1])
if #templateName == 0 then
local title = mw.title.getCurrentTitle()
if title.namespace == 10 then
templateName = mw.ustring.match(title.text, "^(.-)/opis")
or mw.ustring.match(title.text, "^(.-)/test")
or mw.ustring.match(title.text, "^(.-)/brudnopis")
or title.text
end
if #templateName == 0 then
mw.log("brak nazwy szablonu")
return
end
end
local i = 2
local showparams = true
local showinfo = true
local vertical = false
local brudnopis;
while i <= #options do
local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$")
if(not parametr)then
local option = mw.text.trim(options[i])
if option == "bez wikikodu" then
showparams = false
elseif option == "bez opisu" then
showinfo = false
elseif option == "pionowo" then
vertical = true
end
else
local parametr=mw.text.trim(parametr)
if(parametr=="brudnopis")then
brudnopis=mw.text.trim(wartosc);
end;
end
i = i + 1
end;
local templateTitle = mw.title.new(templateName, 10)
if templateTitle.id == 0 then
mw.log("szablon '"..templateName.."' nie istnieje")
return
end
local sandboxName = brudnopis or (templateName.."/brudnopis")
local sandboxTitle = mw.title.new(sandboxName, 10)
if sandboxTitle.id == 0 then
mw.log("brudnopis '"..sandboxName.."' nie istnieje")
return
end
local templateParams = {}
local params = {}
for k, v in pairs(pf.args) do
if (k ~= "") then
templateParams[k] = v
table.insert(params, k)
end
end
local result = {}
table.insert(result, '<table style="width: 100%;">')
if showparams and (#params > 0) then
local compare = function(a, b)
-- return a < b
if (type(a) == "number") and (type(b) == "number") then
return a < b
end
if (type(a) == "string") and (type(b) == "string") then
return a < b
end
if (type(a) == "number") and (type(b) == "string") then
return true
end
return false
end
table.sort(params, compare)
table.insert(result, "<caption><code>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
local p = mw.text.nowiki(tostring(k))
local v = mw.text.nowiki(templateParams[k])
table.insert(result, p)
table.insert(result, " = ")
table.insert(result, v)
end
table.insert(result, "}}</code></caption>")
end
local templateResult = frame:expandTemplate{ title=templateName, args=templateParams}
local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams}
if templateResult and string.match(templateResult, "^{|") then
templateResult = "\n"..templateResult
end
if sandboxResult and string.match(sandboxResult, "^{|") then
sandboxResult = "\n"..sandboxResult
end
if vertical and showinfo then
table.insert(result, '<tr><th style="width: 15em">[[Szablon:')
table.insert(result, templateName)
table.insert(result, '|Szablon]]</th><td>')
table.insert(result, templateResult)
table.insert(result, '</td></tr><tr><th>[[Szablon:')
table.insert(result, sandboxName)
table.insert(result, '|Brudnopis szablonu]]</th><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
elseif vertical then
table.insert(result, '<tr><td>')
table.insert(result, templateResult)
table.insert(result, '</td></tr><tr><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
else
if showinfo then
table.insert(result, '<tr><th style="width: 50%;">[[Szablon:')
table.insert(result, templateName)
table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:')
table.insert(result, sandboxName)
table.insert(result, '|Brudnopis szablonu]]</th></tr>')
end
table.insert(result, '<tr style="vertical-align: top;"><td>')
table.insert(result, templateResult)
table.insert(result, '</td><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
end
table.insert(result, "</table>")
return table.concat(result)
end,
["Parametry"] = function(frame)
local pf=frame:getParent();
local unknown = {}
local invalid = {}
local deprecated = {}
local nakedurl = {}
local exturl = {}
local files = {};
local templateName;
local function argName(arg)
local span = mw.html.create('span');
span:css('white-space','pre');
span:wikitext(arg);
return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"');
end
local parametry_modul=require("Module:Parametry");
local dodatkowe_elementy=pf.args["dodatkowe parametry"];
local tablica_dodatkowe_elementy;
if(parametry_modul.CzyTak(dodatkowe_elementy))then
tablica_dodatkowe_elementy={};
local __tablica_dodatkowe_elementy=mw.text.split(dodatkowe_elementy,";;",false);
for _,value in ipairs(__tablica_dodatkowe_elementy)do
local tab_dwoch_element=mw.text.split(value,"=",false);
if((tab_dwoch_element[1])and(tab_dwoch_element[2]))then
tablica_dodatkowe_elementy[mw.text.trim(tab_dwoch_element[1])]=mw.text.trim(tab_dwoch_element[2]);
end;
end;
end;
local ramka_modul=require("Module:Ramka");
local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]);
local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]);
local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2)
local required = {};
local repeated = {};
local konieczne = {};
local empty = {};
local noempty = {};
local sprawdz_modul=mw.loadData("Module:Sprawdź/dane");
local tabelka_argumentow_systemowych_funkcji=sprawdz_modul.tabelka_argumentow_systemowych_funkcji;
local tabelka_argumentow_dodatkowych_funkcji=sprawdz_modul.tabelka_argumentow_dodatkowych_funkcji;
local tabelka_argumentow_systemowych_szablonu=sprawdz_modul.tabelka_argumentow_systemowych_szablonu;
local tabelka_parametrow_rodzica={};
local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"];
local szablonowe_modul=require("Module:Szablonowe");
if(parametry_rodzica)then
tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica);
templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle());
else
tabelka_parametrow_rodzica=pf.args;
templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle());
end;
local czy_dokumentacja=((parametry_modul.CzyTak(frame.args["dokumentacja"])) or (parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"])));
if(czy_dokumentacja)then return;end;
local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]);
if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka
tabelka_argumentow_systemowych_szablonu["parametry pudełka"]="";
tabelka_argumentow_systemowych_szablonu["bez błędu"]="";
tabelka_argumentow_systemowych_szablonu["bez szczegółów"]="";
--dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel--
local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica);
for i=1,maksimum,1 do
if(i>1)then
tabelka_argumentow_systemowych_szablonu[i]="txt!";
else
tabelka_argumentow_systemowych_szablonu[1]="txt!;cel";
end;
end;
tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1"
end;
local tablica_mikroszablonow={
["{{+}}"]=";",
["{{!+}}"]="^",
["{{+!}}"]="$",
};
tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji);
tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu);
local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"];
local zmienne_dodane={};
if(zmienna_sprawdzania_parametrow)then
local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false);
for poz,war in ipairs(tabelka_zmiennych)do
local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$")
if((zmienna)and(wartosc))then
zmienna=mw.text.trim(zmienna);
wartosc=mw.text.trim(wartosc);
zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc;
end;
end;
end;
local zmienne_konieczne=function(tab,czy_odjete)
for k, v in pairs(tab)do
if(czy_odjete
or ((not tabelka_argumentow_systemowych_funkcji[k])
and (not tabelka_argumentow_systemowych_szablonu[k])
and (not tabelka_bez_argumentow[k])
)
)then
local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*");
if wydziel and mw.ustring.match(wydziel, "!%s*$") then
required[k] = true
elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then
required[k] = true
end
end;
end;
end;
zmienne_konieczne(frame.args,false);
zmienne_konieczne(zmienne_dodane,true);
zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true);
zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true);
local emptyArg = false
local obslugiwane=function(k)
local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k])
and (tabelka_argumentow_systemowych_funkcji[k]
or tabelka_argumentow_systemowych_szablonu[k]
or zmienne_dodane[k]
or frame.args[k]) or nil
) or nil;
return kind;
end;
local tab={};
local function inne_elementy_konieczne(k)
local element=tab[k]
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then
return true;
end;
end;
end;
end;
return false;
end;
local function tab_inne_elementy_konieczne(k)
local element=tab[k]
local tab_konieczne={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then
table.insert(tab_konieczne,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne;
end;
local function inne_elementy_nieobslugiwane(k)
local element=tab[k]
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(not wartosc[1])then
if(not wartosc[2] and not wartosc[3])then
if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])
and(((wartosc[4])and
(#tabelka_parametrow_rodzica[name2]>0)
)or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0)))
)then
return true;
end;
elseif(not wartosc[2] and wartosc[3])then
return true;
elseif(wartosc[2] and not wartosc[3])then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))
)then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k)
local element=tab[k];
local tab_konieczne_puste={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then
table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne_puste;
end;
local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k)
local element=tab[k];
local tab_konieczne_puste={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then
table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne_puste;
end;
local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k)
local element=tab[k];
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))
))then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k)
local element=tab[k];
local czy=false;
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0))
))then
return true;
end;
end;
end;
end;
end;
end;
return czy;
end;
local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k)
local element=tab[k];
local czy=true;
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if(wartosc[2])then
if(not wartosc[3])then
if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then
if(#tabelka_parametrow_rodzica[name2]>0)then
return true;
end;
end;
elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local strony_modul=require("Module:Strony");
local NumerPlik=function(k,v,zapytajnik,tryb)
local czy_zapytajnik=(zapytajnik~="?");
local zero=(czy_zapytajnik and(#v==0));
if(zero)then
table.insert(invalid, argName(k));
elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then
local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,};
if not u then table.insert(invalid,argName(k)) end;
end;
end;
local GrafikaPlik=function(k,v,zapytajnik,przestrzen)
local czy_zapytajnik=(zapytajnik~="?");
local zero=(czy_zapytajnik and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then
if strony_modul.ZnajdowanieNormalnychStronHttp(v) then
table.insert(nakedurl, argName(k))
else
local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, };
if not g then table.insert(invalid, argName(k)) end
end;
end;
end;
local Kind=function(k,kind)
if(not kind)then return;end;
if(tablica_dodatkowe_elementy)then
local element=tablica_dodatkowe_elementy[k];
return kind..(element and (";"..element) or "");
end;
return kind;
end;
for k, v in pairs(tabelka_parametrow_rodzica) do
required[k] = false
local kind=obslugiwane(k);
kind=Kind(k,kind);
local zapytajnik;
local wykrzyknik;
if (kind) then
local kind2;local zmienne;
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
end;
end;
end;
if((kind2)and(zmienne))then
local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false);
tab[k]={};
for _,value in ipairs(tab2) do
value=mw.text.trim(value);
local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow);
local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$");
local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$");
local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$");
tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false),
((not wykrzyknik) and true or false),
((not zapytajnik) and true or false),
((not (wykrzyknik=="!!")) and true or false),
};
end;
kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow);
else
kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$");
if(not kind2)or(not zapytajnik)then
kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$");
end;
kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow);
end;
end;
kind=kind and mw.text.trim(kind);
if k == "" then
emptyArg = v
elseif not kind or inne_elementy_nieobslugiwane(k) then
table.insert(unknown, argName(k))
elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then
table.insert(repeated, argName(k));
elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then
table.insert(empty, k);
elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then
table.insert(noempty, k);
elseif inne_elementy_konieczne(k) then
table.insert(konieczne, k);
else
local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$");
if(not old or not __kind)then
__kind,old=mw.ustring.match(kind,"^%s*(.-)%s*%+%s*(old)%s*$");
end;
if(old and __kind)then
table.insert(deprecated, argName(k));
kind=__kind;
end;
if(kind == "")then
-- Kod pusty
elseif (kind == "num") then
if(zapytajnik~="?")then
local n = tonumber(v)
if not n then table.insert(invalid, argName(k)) end
else
local n = (#v == 0) or tonumber(v)
if not n then table.insert(invalid, argName(k)) end
end;
elseif (kind == "uri") then
if(zapytajnik~="?")then
local u = strony_modul.SprawdzanieURL(v)
if not u then table.insert(invalid, argName(k)) end
else
local u = (#v == 0) or strony_modul.SprawdzanieURL(v)
if not u then table.insert(invalid, argName(k)) end
end;
elseif(kind=="txt")then
if(zapytajnik~="?")then
if #v == 0 then table.insert(invalid, argName(k)) end;
end;
elseif (kind=="all")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
end;
end;
end;
elseif(kind=="grafika")then
GrafikaPlik(k,v,zapytajnik,false);
elseif(kind=="grafika*")then
GrafikaPlik(k,v,zapytajnik,true);
elseif (kind == "text") then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u= strony_modul.ZnajdowaniePlikowe(v);
if(u)then
table.insert(files, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v)
if(u)then
table.insert(exturl, argName(k))
end;
end;
end;
end;
end;
elseif(kind == "text-img")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v)
if(u)then
table.insert(exturl, argName(k))
end;
end;
end;
end;
elseif((kind == "text-link")or(kind == "tekst"))then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u= strony_modul.ZnajdowaniePlikowe(v);
if(u)then
table.insert(files, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
end;
end;
end;
end;
elseif ((not old)and(kind == "old")) then
table.insert(deprecated, argName(k));
elseif(kind == "uri*")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v))
if not u then table.insert(invalid, argName(k)) end
end;
elseif(kind=="rozmiar")then
NumerPlik(k,v,zapytajnik,false);
elseif(kind=="rozmiar*")then
NumerPlik(k,v,zapytajnik,true);
elseif(kind~="")then
local function regex(kind)
local tab_pattern_wykrzyknik_lub_nie_wzorow={};
local pattern_poczatek=kind;
local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji)
local tab_split_pattern_koniunkcji={};
local pattern_poczatek=pattern_analiza_wzorow_koniunkcji;
repeat
local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$");
if(pattern_poczatek_2 and pattern_koniec)then
table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2);
pattern_poczatek=pattern_koniec;
else
local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$");
if pattern_caly then
table.insert(tab_split_pattern_koniunkcji,pattern_caly);
end;
end;
until not pattern_poczatek_2;
local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={};
for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do
local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$");
table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik});
end;
table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji);
end;
repeat
local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$");
if pattern_poczatek_2 and pattern_koniec then
funkcja_zbierajacy_dane_patternow(pattern_poczatek_2);
pattern_poczatek=pattern_koniec;
else
local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$");
if(pattern_caly)then
funkcja_zbierajacy_dane_patternow(pattern_caly);
end;
break;
end;
until not pattern_poczatek_2;
if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then
for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do
local czy=true;
for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do
local pattern=tab_pattern_elementy_koniunkcji[1];
local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!");
if(pattern)then
if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then
czy=czy and true;
if(not czy)then
break;
end;
else
czy=false;
break;
end;
end
end;
if(czy)then return true;end;
end;
return false;
end;
return nil;
end;
if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then
local wynik=regex(kind);
if((type(wynik)~="nil")and(not wynik))then
table.insert(invalid, argName(k));
elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then
table.insert(nakedurl, argName(k))
elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then
table.insert(nakedurl, argName(k))
end;
end;
end
end;
end;
local missing = {}
local function inny_element2(k)
local element=tab[k]
if(element)then
for name2,wartosc in pairs(element)do
if((wartosc[2])and(k~=name2))then
if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then
return true;
end;
end;
end;
end;
for name,value in pairs(tab)do
for name2,wartosc in pairs(value)do
if((wartosc[2])and(name2==k)and(name2~=name))then
if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then
return true;
end;
end;
end;
end;
return false;
end;
for k, v in pairs(required) do
if v and not inny_element2(k) then
table.insert(missing, argName(k))
end
end
local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]);
local function Szablon_z_sprawdz_parametry()
if(czy_not_category)then return "";end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]());
if(templateName==nazwa_szablonu)then
local sprawdz_modul=require("Module:Sprawdź");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]";
end;
return "";
end;
local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing);
local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne);
local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown);
local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid);
local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated);
local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated);
local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty);
local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty);
local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files);
local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl);
local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl);
if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then
return Szablon_z_sprawdz_parametry();
end
local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]));
local result;
if(czy_informacje)then
result=mw.html.create("span")
result:addClass("problemy");
result:addClass("error");
result:css('white-space','pre-line');
result:css('font-size','unset');
end;
local typ;
local typ_jednostki;
local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]);
----[""]=?---
local config = frame.args[""]
local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$")
local nl = space and string.match(space, "\n") or ""
class = class or config
----
if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then
--local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}}
local pudelko_modul=require("Module:Pudełko");
typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={
["obsługiwane jednostki jako nieopisowe strony"]="tak",
["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"],
["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"],
["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"],
},};
if(typ_jednostki=="artykuł")then
typ="(artykuły)";
elseif(typ_jednostki=="artykuł dla dzieci")then
typ="(artykuły dla dzieci)";
elseif(typ_jednostki=="strona użytkownika")then
typ="(strony użytkowników)";
elseif(typ_jednostki=="strona brudnopisu projektu")then
typ="(strony brudnopisu projektu)";
else
typ="(strony niepodręcznikowe)";
end;
else
typ=nil;
end;
if(czy_informacje)then
if(not czy_nazwij_jednostka)then
if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then
result:css("display", "none");
result:css("color","black");
else
result:css("color", "red")
end
else
result:css("color", "red")
end;
end;
local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]));
local message;
if(czy_informacje or czy_warning)then
message=mw.html.create()
if emptyArg then
message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>")
end
if czy_missing then
message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>")
end
if czy_konieczne then
for _,_konieczne in ipairs(konieczne) do
message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>")
end;
end
if czy_invalid then
message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>")
end
if czy_unknown then
message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>")
end
if czy_deprecated then
message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>")
end
if czy_repeated then
message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>")
end
if czy_empty then
for _,_empty in ipairs(empty) do
message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>")
end;
end
if czy_noempty then
for _,_noempty in ipairs(noempty) do
message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>")
end;
end
if czy_files then
for _,_files in ipairs(files) do
message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".")
end;
end;
if czy_nakedurl then
for _,_nakedurl in ipairs(nakedurl) do
message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".")
end;
end;
if czy_exturl then
for _,_exturl in ipairs(exturl) do
message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".")
end;
end;
end;
local warning;
if(czy_warning)then
warning = mw.html.create('span');
warning:css('color','red');
warning:css('white-space','pre-line');
warning:css('word-break','break-all');
warning:addClass("problemy");
end;
if(templateName)then
mw.logObject(templateName, "templateName")
local dwukropek=mw.ustring.match(templateName,"^%s*:");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName);
local wywolanie;local wywolanie2;
local szablonowe_modul=require("Module:Szablonowe");
if dwukropek or nazwa_przestrzeni_strony~="" then
wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica);
wywolanie2="{{"..templateName.."}}";
if(parametry_modul.CzyTak(category))then
templateName=mw.ustring.gsub(templateName,"^%s*:","");
if(not czy_not_category)then
if(typ)then
category=mw.ustring.format(category,templateName,typ);
else
category=mw.ustring.format(category,templateName);
end;
category=pf:preprocess(category);
end;
class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-"));
end;
else
wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica);
wywolanie2="{{"..templateName.."}}";
if(parametry_modul.CzyTak(category))then
local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)");
local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u");
local szablon;
if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end;
if(not czy_not_category)then
if(typ)then
category=mw.ustring.format(category,szablon,typ);
else
category=mw.ustring.format(category,szablon);
end;
category=pf:preprocess(category);
end;
class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-"));
end;
end
if(czy_warning)then
local strong = mw.html.create('strong');
strong:wikitext("Wywołanie ")
local span = mw.html.create('span');
span:css('font-weight','normal');
span:css('white-space','pre');
span:css('color',"brown");
span:wikitext(wywolanie);
local strong2=mw.html.create('strong');
strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>");
warning:node(strong);
warning:node(span);
warning:node(strong2);
end;
if(czy_informacje)then
local strong = mw.html.create('strong');
strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>");
result:node(strong);
end;
end;
local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]);
if(not czy_usun_linkowanie)then
local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id;
end;
if(czy_informacje or czy_warning)then
message = tostring(message)
end;
if(czy_warning)then
warning:wikitext(message);
mw.addWarning(tostring(warning));
end;
if czy_informacje and class then
result:addClass(class)
end
if(czy_informacje)then result:wikitext(message);end;
local str_category;
if not czy_not_category and category then
str_category=category;
else
str_category="";
end
return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry();
end,
["odn"] = function(frame)
local pf = frame:getParent()
local i = 1
local problems = false
local yeardetected = false
while true do
local arg = pf.args[i]
if not arg then
problems = i == 1 and "brak argumentów" or false
break
end
if (i > 5) or yeardetected then
problems = "za dużo argumentów pozycyjnych"
break
end
if #arg == 0 then
problems = "pusty argument"
break
end
if arg ~= mw.text.trim(arg) then
problems = "nieoczekiwane odstępy na początku lub końcu argumentu"
break
end
if string.match(arg, "^%d+%l?$") then
yeardetected = true
if i == 1 then
problems = "rok musi być ostatnim parametrem po nazwiskach autorów"
break
end
elseif string.match(arg, "^s[%-%.:]%s*%d+") then
problems = "prawdopodobnie nieprawidłowo podany numer strony"
break
elseif string.match(arg, "%s%s") then
problems = "podwójne odstępy"
break
elseif mw.ustring.match(arg, "^%a+%d") then
if not mw.ustring.match(arg, "^[%u%d]+$") then
problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)"
break
end
elseif mw.ustring.match(arg, "^OdeB ") then
-- [[Ordre de Bataille]]
elseif mw.ustring.match(arg, "^%u%l+%u") then
local justification = {
["De"] = true,
["Del"] = true,
["Di"] = true,
["Le"] = true,
["Mac"] = true,
["Mc"] = true,
["Te"] = true, -- TeSelle
["Sar"] = true, -- SarDesai
["Van"] = true, -- VanBuren
["La"] = true, -- LaSalle
}
if not justification[mw.ustring.match(arg, "^%u%l+")] then
problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)"
break
end
end
i = i + 1
end
if not problems then
local odn = pf.args.odn
if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then
problems = "nieoczekiwany parametr odn"
end
end
if not problems then
local s = pf.args.s
if s and string.match(s, "&[a-z]+;") then
problems = "użyto encji HTML w numerze strony"
end
end
if not problems then
if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then
problems = "przestarzały parametr z numerem strony"
end
end
if not problems then
return nil
end
local result = mw.html.create("span"):addClass("problemy-w-odn")
local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}}
local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2)
if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then
result:css("display", "none")
else
result:css("color", "red")
end
local typ;
if(typ_jednostki=="artykuł")then
typ="artykuły";
elseif(typ_jednostki=="artykuł dla dzieci")then
typ="artykuły dla dzieci";
elseif(typ_jednostki=="strona użytkownika")then
typ="strony użytkowników";
elseif(typ_jednostki=="strona brudnopisu projektu")then
typ="strony brudnopisu projektu";
else
typ="strony niepodręcznikowe";
end;
local kategorie_modul=require("Module:Kategorie");
local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}};
result:wikitext(str_kategoria);
result:wikitext("ODN: ", problems)
return tostring(result)
end,
["Wikidane"] = function(frame)
local property = frame.args.cecha
local field = frame.args.pole
local value = frame.args[1]
if not property or not field then
return
end
if not value then
value = frame:getParent().args[field]
if not value or (#value == 0) then
return
end
end
local entity = mw.wikibase.getEntity()
if not entity or not entity.claims or not entity.claims[property] then
return
end
for i, v in ipairs(entity.claims[property]) do
if v.mainsnak.snaktype == "value" then
if value == v.mainsnak.datavalue.value then
return
end
end
end
local template = frame:getParent():getTitle()
local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$")
return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field)
end,
["bez parametrów"] = function(frame)
for k, v in pairs(frame:getParent().args) do
return nil
end
return "tak"
end,
["pole z hostem"] = function (frame)
local host = frame.args.host
if host and (#host > 0) then
for k, v in pairs(frame:getParent().args) do
local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+")
if link then
local uri = mw.uri.new(link)
local valid, _ = mw.uri.validate(uri)
if valid and uri.host and (#uri.host > 0) then
if host == uri.host then
mw.logObject({k, link}, "cały")
return k
end
if #host < #uri.host then
local s1 = '.'..host
local s2 = string.sub(uri.host, -#s1)
if s1 == s2 then
mw.logObject({k, link}, "fragment")
return k
end
end
end
end
end
end
end,
["pola z autorami"] = function (frame)
local result = {}
local nazwisko = frame.args["nazwisko"]
local imie = frame.args["imię"]
local autor = frame.args["autor"]
local link = frame.args["link"]
local maxIndex = tonumber(frame.args["max"])
local prefix = frame.args["przed"] or ""
local suffix = frame.args["po"] or ""
for i = 1, maxIndex do
local s = i == 1 and "" or tostring(i)
local nin = string.gsub(nazwisko, '#', s)
local iin = string.gsub(imie, '#', s)
local ain = string.gsub(autor, '#', s)
local lin = string.gsub(link, '#', s)
local niv = frame:getParent().args[nin]
local iiv = frame:getParent().args[iin]
local aiv = frame:getParent().args[ain]
local liv = frame:getParent().args[lin]
local nis = niv and (#niv > 0)
local iis = iiv and (#iiv > 0)
local ais = aiv and (#aiv > 0)
local lis = liv and (#liv > 0)
local bad = (nis and ais) -- nazwisko -> zbędny autor
or (nis and not iis) -- nazwisko bez imienia
or (lis and not nis and not ais) -- tylko link
or (iis and not nis) -- imię bez nazwiska
if bad then
table.insert(result, i)
end
end
if #result > 0 then
return prefix..mw.text.listToText(result)..suffix
end
end,
["pola z gołymi linkami"] = function (frame)
local result = {}
for k, v in pairs(frame:getParent().args) do
local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+")
if link then
local justified = frame.args[k]
if not justified then
mw.logObject(v,k)
table.insert(result, '"'..k..'"')
end
end
end
return mw.text.listToText(result)
end,
["uri"] = function(frame)
mw.logObject(frame:getParent():getTitle(), "parent:title")
_ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id
local link = frame.args["link"]
local space = frame.args["spacja"]
local strony_modul=require("Module:Strony");
local check = strony_modul.SprawdzanieURL(link)
if check then
return link
end
return (space and (check ~= nil)) and link or ""
end,
["url"] = function(frame)
local link = frame.args[1]
local okText = frame.args[2] or "ok"
local isValid = string.find(link, '{{{') == 1 or checkUri(link)
if isValid then
return okText
end
return ""
end,
["lista nazw niepustych argumentów"] = function(frame)
local argNames = {}
for k, v in pairs(frame:getParent().args) do
if #mw.text.trim(v) > 0 then
table.insert(argNames, tostring(k))
end
end
return table.concat(argNames, ", ")
end,
}
joda4yj9cl22lc87jx4n2jdbxvjss6k
551492
551487
2026-08-11T21:14:26Z
Persino
2851
Anulowano wersję [[Special:Diff/551487|551487]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
551492
Scribunto
text/plain
return {
["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function()
return "Szablony z dodatkową opcją sprawdzania parametrów";
end;
["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame)
local wikikod=frame.args[1];
local sprawdz_modul=require("Module:Sprawdź");
local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]();
local specjalne_modul=require("Module:Specjalne");
return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,}
end;
["Porównaj"] = function(frame)
local pf=frame:getParent();
local config = pf.args[""] or ""
local brudnopis=pf.args["brudnopis"];
local options = mw.text.split(config, "|")
local templateName = mw.text.trim(options[1])
if #templateName == 0 then
local title = mw.title.getCurrentTitle()
if title.namespace == 10 then
templateName = mw.ustring.match(title.text, "^(.-)/opis")
or mw.ustring.match(title.text, "^(.-)/test")
or mw.ustring.match(title.text, "^(.-)/brudnopis")
or title.text
end
if #templateName == 0 then
mw.log("brak nazwy szablonu")
return
end
end
local i = 2
local showparams = true
local showinfo = true
local vertical = false
local brudnopis;
while i <= #options do
local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$")
if(not parametr)then
local option = mw.text.trim(options[i])
if option == "bez wikikodu" then
showparams = false
elseif option == "bez opisu" then
showinfo = false
elseif option == "pionowo" then
vertical = true
end
else
local parametr=mw.text.trim(parametr)
if(parametr=="brudnopis")then
brudnopis=mw.text.trim(wartosc);
end;
end
i = i + 1
end;
local templateTitle = mw.title.new(templateName, 10)
if templateTitle.id == 0 then
mw.log("szablon '"..templateName.."' nie istnieje")
return
end
local sandboxName = brudnopis or (templateName.."/brudnopis")
local sandboxTitle = mw.title.new(sandboxName, 10)
if sandboxTitle.id == 0 then
mw.log("brudnopis '"..sandboxName.."' nie istnieje")
return
end
local templateParams = {}
local params = {}
for k, v in pairs(pf.args) do
if (k ~= "") then
templateParams[k] = v
table.insert(params, k)
end
end
local result = {}
table.insert(result, '<table style="width: 100%;">')
if showparams and (#params > 0) then
local compare = function(a, b)
-- return a < b
if (type(a) == "number") and (type(b) == "number") then
return a < b
end
if (type(a) == "string") and (type(b) == "string") then
return a < b
end
if (type(a) == "number") and (type(b) == "string") then
return true
end
return false
end
table.sort(params, compare)
table.insert(result, "<caption><code>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
local p = mw.text.nowiki(tostring(k))
local v = mw.text.nowiki(templateParams[k])
table.insert(result, p)
table.insert(result, " = ")
table.insert(result, v)
end
table.insert(result, "}}</code></caption>")
end
local templateResult = frame:expandTemplate{ title=templateName, args=templateParams}
local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams}
if templateResult and string.match(templateResult, "^{|") then
templateResult = "\n"..templateResult
end
if sandboxResult and string.match(sandboxResult, "^{|") then
sandboxResult = "\n"..sandboxResult
end
if vertical and showinfo then
table.insert(result, '<tr><th style="width: 15em">[[Szablon:')
table.insert(result, templateName)
table.insert(result, '|Szablon]]</th><td>')
table.insert(result, templateResult)
table.insert(result, '</td></tr><tr><th>[[Szablon:')
table.insert(result, sandboxName)
table.insert(result, '|Brudnopis szablonu]]</th><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
elseif vertical then
table.insert(result, '<tr><td>')
table.insert(result, templateResult)
table.insert(result, '</td></tr><tr><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
else
if showinfo then
table.insert(result, '<tr><th style="width: 50%;">[[Szablon:')
table.insert(result, templateName)
table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:')
table.insert(result, sandboxName)
table.insert(result, '|Brudnopis szablonu]]</th></tr>')
end
table.insert(result, '<tr style="vertical-align: top;"><td>')
table.insert(result, templateResult)
table.insert(result, '</td><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
end
table.insert(result, "</table>")
return table.concat(result)
end,
["Parametry"] = function(frame)
local pf=frame:getParent();
local unknown = {}
local invalid = {}
local deprecated = {}
local nakedurl = {}
local exturl = {}
local files = {};
local templateName;
local function argName(arg)
local span = mw.html.create('span');
span:css('white-space','pre');
span:wikitext(arg);
return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"');
end
local parametry_modul=require("Module:Parametry");
local dodatkowe_elementy=pf.args["dodatkowe parametry"];
local tablica_dodatkowe_elementy;
if(parametry_modul.CzyTak(dodatkowe_elementy))then
tablica_dodatkowe_elementy={};
local __tablica_dodatkowe_elementy=mw.text.split(dodatkowe_elementy,";;",false);
for _,value in ipairs(__tablica_dodatkowe_elementy)do
local tab_dwoch_element=mw.text.split(value,"=",false);
if((tab_dwoch_element[1])and(tab_dwoch_element[2]))then
tablica_dodatkowe_elementy[mw.text.trim(tab_dwoch_element[1])]=mw.text.trim(tab_dwoch_element[2]);
end;
end;
end;
local ramka_modul=require("Module:Ramka");
local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]);
local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]);
local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2)
local required = {};
local repeated = {};
local konieczne = {};
local empty = {};
local noempty = {};
local sprawdz_modul=mw.loadData("Module:Sprawdź/dane");
local tabelka_argumentow_systemowych_funkcji=sprawdz_modul.tabelka_argumentow_systemowych_funkcji;
local tabelka_argumentow_dodatkowych_funkcji=sprawdz_modul.tabelka_argumentow_dodatkowych_funkcji;
local tabelka_argumentow_systemowych_szablonu=sprawdz_modul.tabelka_argumentow_systemowych_szablonu;
local tabelka_parametrow_rodzica={};
local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"];
local szablonowe_modul=require("Module:Szablonowe");
if(parametry_rodzica)then
tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica);
templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle());
else
tabelka_parametrow_rodzica=pf.args;
templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle());
end;
local czy_dokumentacja=((parametry_modul.CzyTak(frame.args["dokumentacja"])) or (parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"])));
if(czy_dokumentacja)then return;end;
local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]);
if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka
tabelka_argumentow_systemowych_szablonu["parametry pudełka"]="";
tabelka_argumentow_systemowych_szablonu["bez błędu"]="";
tabelka_argumentow_systemowych_szablonu["bez szczegółów"]="";
--dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel--
local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica);
for i=1,maksimum,1 do
if(i>1)then
tabelka_argumentow_systemowych_szablonu[i]="txt!";
else
tabelka_argumentow_systemowych_szablonu[1]="txt!;cel";
end;
end;
tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1"
end;
local tablica_mikroszablonow={
["{{+}}"]=";",
["{{!+}}"]="^",
["{{+!}}"]="$",
};
tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji);
tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu);
local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"];
local zmienne_dodane={};
if(zmienna_sprawdzania_parametrow)then
local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false);
for poz,war in ipairs(tabelka_zmiennych)do
local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$")
if((zmienna)and(wartosc))then
zmienna=mw.text.trim(zmienna);
wartosc=mw.text.trim(wartosc);
zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc;
end;
end;
end;
local zmienne_konieczne=function(tab,czy_odjete)
for k, v in pairs(tab)do
if(czy_odjete
or ((not tabelka_argumentow_systemowych_funkcji[k])
and (not tabelka_argumentow_systemowych_szablonu[k])
and (not tabelka_bez_argumentow[k])
)
)then
local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*");
if wydziel and mw.ustring.match(wydziel, "!%s*$") then
required[k] = true
elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then
required[k] = true
end
end;
end;
end;
zmienne_konieczne(frame.args,false);
zmienne_konieczne(zmienne_dodane,true);
zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true);
zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true);
local emptyArg = false
local obslugiwane=function(k)
local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k])
and (tabelka_argumentow_systemowych_funkcji[k]
or tabelka_argumentow_systemowych_szablonu[k]
or zmienne_dodane[k]
or frame.args[k])
) or (zmienne_dodane[k]);
return kind;
end;
local tab={};
local function inne_elementy_konieczne(k)
local element=tab[k]
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then
return true;
end;
end;
end;
end;
return false;
end;
local function tab_inne_elementy_konieczne(k)
local element=tab[k]
local tab_konieczne={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then
table.insert(tab_konieczne,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne;
end;
local function inne_elementy_nieobslugiwane(k)
local element=tab[k]
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(not wartosc[1])then
if(not wartosc[2] and not wartosc[3])then
if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])
and(((wartosc[4])and
(#tabelka_parametrow_rodzica[name2]>0)
)or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0)))
)then
return true;
end;
elseif(not wartosc[2] and wartosc[3])then
return true;
elseif(wartosc[2] and not wartosc[3])then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))
)then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k)
local element=tab[k];
local tab_konieczne_puste={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then
table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne_puste;
end;
local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k)
local element=tab[k];
local tab_konieczne_puste={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then
table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne_puste;
end;
local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k)
local element=tab[k];
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))
))then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k)
local element=tab[k];
local czy=false;
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0))
))then
return true;
end;
end;
end;
end;
end;
end;
return czy;
end;
local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k)
local element=tab[k];
local czy=true;
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if(wartosc[2])then
if(not wartosc[3])then
if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then
if(#tabelka_parametrow_rodzica[name2]>0)then
return true;
end;
end;
elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local strony_modul=require("Module:Strony");
local NumerPlik=function(k,v,zapytajnik,tryb)
local czy_zapytajnik=(zapytajnik~="?");
local zero=(czy_zapytajnik and(#v==0));
if(zero)then
table.insert(invalid, argName(k));
elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then
local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,};
if not u then table.insert(invalid,argName(k)) end;
end;
end;
local GrafikaPlik=function(k,v,zapytajnik,przestrzen)
local czy_zapytajnik=(zapytajnik~="?");
local zero=(czy_zapytajnik and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then
if strony_modul.ZnajdowanieNormalnychStronHttp(v) then
table.insert(nakedurl, argName(k))
else
local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, };
if not g then table.insert(invalid, argName(k)) end
end;
end;
end;
local Kind=function(k,kind)
if(not kind)then return;end;
if(tablica_dodatkowe_elementy)then
local element=tablica_dodatkowe_elementy[k];
return kind..(element and (";"..element) or "");
end;
return kind;
end;
for k, v in pairs(tabelka_parametrow_rodzica) do
required[k] = false
local kind=obslugiwane(k);
kind=Kind(k,kind);
local zapytajnik;
local wykrzyknik;
if (kind) then
local kind2;local zmienne;
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
end;
end;
end;
if((kind2)and(zmienne))then
local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false);
tab[k]={};
for _,value in ipairs(tab2) do
value=mw.text.trim(value);
local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow);
local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$");
local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$");
local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$");
tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false),
((not wykrzyknik) and true or false),
((not zapytajnik) and true or false),
((not (wykrzyknik=="!!")) and true or false),
};
end;
kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow);
else
kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$");
if(not kind2)or(not zapytajnik)then
kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$");
end;
kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow);
end;
end;
kind=kind and mw.text.trim(kind);
if k == "" then
emptyArg = v
elseif not kind or inne_elementy_nieobslugiwane(k) then
table.insert(unknown, argName(k))
elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then
table.insert(repeated, argName(k));
elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then
table.insert(empty, k);
elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then
table.insert(noempty, k);
elseif inne_elementy_konieczne(k) then
table.insert(konieczne, k);
else
local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$");
if(not old or not __kind)then
__kind,old=mw.ustring.match(kind,"^%s*(.-)%s*%+%s*(old)%s*$");
end;
if(old and __kind)then
table.insert(deprecated, argName(k));
kind=__kind;
end;
if(kind == "")then
-- Kod pusty
elseif (kind == "num") then
if(zapytajnik~="?")then
local n = tonumber(v)
if not n then table.insert(invalid, argName(k)) end
else
local n = (#v == 0) or tonumber(v)
if not n then table.insert(invalid, argName(k)) end
end;
elseif (kind == "uri") then
if(zapytajnik~="?")then
local u = strony_modul.SprawdzanieURL(v)
if not u then table.insert(invalid, argName(k)) end
else
local u = (#v == 0) or strony_modul.SprawdzanieURL(v)
if not u then table.insert(invalid, argName(k)) end
end;
elseif(kind=="txt")then
if(zapytajnik~="?")then
if #v == 0 then table.insert(invalid, argName(k)) end;
end;
elseif (kind=="all")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
end;
end;
end;
elseif(kind=="grafika")then
GrafikaPlik(k,v,zapytajnik,false);
elseif(kind=="grafika*")then
GrafikaPlik(k,v,zapytajnik,true);
elseif (kind == "text") then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u= strony_modul.ZnajdowaniePlikowe(v);
if(u)then
table.insert(files, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v)
if(u)then
table.insert(exturl, argName(k))
end;
end;
end;
end;
end;
elseif(kind == "text-img")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v)
if(u)then
table.insert(exturl, argName(k))
end;
end;
end;
end;
elseif((kind == "text-link")or(kind == "tekst"))then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u= strony_modul.ZnajdowaniePlikowe(v);
if(u)then
table.insert(files, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
end;
end;
end;
end;
elseif ((not old)and(kind == "old")) then
table.insert(deprecated, argName(k));
elseif(kind == "uri*")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v))
if not u then table.insert(invalid, argName(k)) end
end;
elseif(kind=="rozmiar")then
NumerPlik(k,v,zapytajnik,false);
elseif(kind=="rozmiar*")then
NumerPlik(k,v,zapytajnik,true);
elseif(kind~="")then
local function regex(kind)
local tab_pattern_wykrzyknik_lub_nie_wzorow={};
local pattern_poczatek=kind;
local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji)
local tab_split_pattern_koniunkcji={};
local pattern_poczatek=pattern_analiza_wzorow_koniunkcji;
repeat
local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$");
if(pattern_poczatek_2 and pattern_koniec)then
table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2);
pattern_poczatek=pattern_koniec;
else
local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$");
if pattern_caly then
table.insert(tab_split_pattern_koniunkcji,pattern_caly);
end;
end;
until not pattern_poczatek_2;
local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={};
for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do
local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$");
table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik});
end;
table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji);
end;
repeat
local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$");
if pattern_poczatek_2 and pattern_koniec then
funkcja_zbierajacy_dane_patternow(pattern_poczatek_2);
pattern_poczatek=pattern_koniec;
else
local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$");
if(pattern_caly)then
funkcja_zbierajacy_dane_patternow(pattern_caly);
end;
break;
end;
until not pattern_poczatek_2;
if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then
for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do
local czy=true;
for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do
local pattern=tab_pattern_elementy_koniunkcji[1];
local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!");
if(pattern)then
if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then
czy=czy and true;
if(not czy)then
break;
end;
else
czy=false;
break;
end;
end
end;
if(czy)then return true;end;
end;
return false;
end;
return nil;
end;
if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then
local wynik=regex(kind);
if((type(wynik)~="nil")and(not wynik))then
table.insert(invalid, argName(k));
elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then
table.insert(nakedurl, argName(k))
elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then
table.insert(nakedurl, argName(k))
end;
end;
end
end;
end;
local missing = {}
local function inny_element2(k)
local element=tab[k]
if(element)then
for name2,wartosc in pairs(element)do
if((wartosc[2])and(k~=name2))then
if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then
return true;
end;
end;
end;
end;
for name,value in pairs(tab)do
for name2,wartosc in pairs(value)do
if((wartosc[2])and(name2==k)and(name2~=name))then
if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then
return true;
end;
end;
end;
end;
return false;
end;
for k, v in pairs(required) do
if v and not inny_element2(k) then
table.insert(missing, argName(k))
end
end
local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]);
local function Szablon_z_sprawdz_parametry()
if(czy_not_category)then return "";end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]());
if(templateName==nazwa_szablonu)then
local sprawdz_modul=require("Module:Sprawdź");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]";
end;
return "";
end;
local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing);
local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne);
local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown);
local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid);
local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated);
local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated);
local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty);
local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty);
local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files);
local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl);
local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl);
if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then
return Szablon_z_sprawdz_parametry();
end
local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]));
local result;
if(czy_informacje)then
result=mw.html.create("span")
result:addClass("problemy");
result:addClass("error");
result:css('white-space','pre-line');
result:css('font-size','unset');
end;
local typ;
local typ_jednostki;
local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]);
----[""]=?---
local config = frame.args[""]
local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$")
local nl = space and string.match(space, "\n") or ""
class = class or config
----
if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then
--local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}}
local pudelko_modul=require("Module:Pudełko");
typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={
["obsługiwane jednostki jako nieopisowe strony"]="tak",
["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"],
["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"],
["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"],
},};
if(typ_jednostki=="artykuł")then
typ="(artykuły)";
elseif(typ_jednostki=="artykuł dla dzieci")then
typ="(artykuły dla dzieci)";
elseif(typ_jednostki=="strona użytkownika")then
typ="(strony użytkowników)";
elseif(typ_jednostki=="strona brudnopisu projektu")then
typ="(strony brudnopisu projektu)";
else
typ="(strony niepodręcznikowe)";
end;
else
typ=nil;
end;
if(czy_informacje)then
if(not czy_nazwij_jednostka)then
if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then
result:css("display", "none");
result:css("color","black");
else
result:css("color", "red")
end
else
result:css("color", "red")
end;
end;
local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]));
local message;
if(czy_informacje or czy_warning)then
message=mw.html.create()
if emptyArg then
message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>")
end
if czy_missing then
message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>")
end
if czy_konieczne then
for _,_konieczne in ipairs(konieczne) do
message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>")
end;
end
if czy_invalid then
message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>")
end
if czy_unknown then
message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>")
end
if czy_deprecated then
message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>")
end
if czy_repeated then
message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>")
end
if czy_empty then
for _,_empty in ipairs(empty) do
message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>")
end;
end
if czy_noempty then
for _,_noempty in ipairs(noempty) do
message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>")
end;
end
if czy_files then
for _,_files in ipairs(files) do
message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".")
end;
end;
if czy_nakedurl then
for _,_nakedurl in ipairs(nakedurl) do
message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".")
end;
end;
if czy_exturl then
for _,_exturl in ipairs(exturl) do
message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".")
end;
end;
end;
local warning;
if(czy_warning)then
warning = mw.html.create('span');
warning:css('color','red');
warning:css('white-space','pre-line');
warning:css('word-break','break-all');
warning:addClass("problemy");
end;
if(templateName)then
mw.logObject(templateName, "templateName")
local dwukropek=mw.ustring.match(templateName,"^%s*:");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName);
local wywolanie;local wywolanie2;
local szablonowe_modul=require("Module:Szablonowe");
if dwukropek or nazwa_przestrzeni_strony~="" then
wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica);
wywolanie2="{{"..templateName.."}}";
if(parametry_modul.CzyTak(category))then
templateName=mw.ustring.gsub(templateName,"^%s*:","");
if(not czy_not_category)then
if(typ)then
category=mw.ustring.format(category,templateName,typ);
else
category=mw.ustring.format(category,templateName);
end;
category=pf:preprocess(category);
end;
class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-"));
end;
else
wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica);
wywolanie2="{{"..templateName.."}}";
if(parametry_modul.CzyTak(category))then
local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)");
local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u");
local szablon;
if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end;
if(not czy_not_category)then
if(typ)then
category=mw.ustring.format(category,szablon,typ);
else
category=mw.ustring.format(category,szablon);
end;
category=pf:preprocess(category);
end;
class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-"));
end;
end
if(czy_warning)then
local strong = mw.html.create('strong');
strong:wikitext("Wywołanie ")
local span = mw.html.create('span');
span:css('font-weight','normal');
span:css('white-space','pre');
span:css('color',"brown");
span:wikitext(wywolanie);
local strong2=mw.html.create('strong');
strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>");
warning:node(strong);
warning:node(span);
warning:node(strong2);
end;
if(czy_informacje)then
local strong = mw.html.create('strong');
strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>");
result:node(strong);
end;
end;
local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]);
if(not czy_usun_linkowanie)then
local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id;
end;
if(czy_informacje or czy_warning)then
message = tostring(message)
end;
if(czy_warning)then
warning:wikitext(message);
mw.addWarning(tostring(warning));
end;
if czy_informacje and class then
result:addClass(class)
end
if(czy_informacje)then result:wikitext(message);end;
local str_category;
if not czy_not_category and category then
str_category=category;
else
str_category="";
end
return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry();
end,
["odn"] = function(frame)
local pf = frame:getParent()
local i = 1
local problems = false
local yeardetected = false
while true do
local arg = pf.args[i]
if not arg then
problems = i == 1 and "brak argumentów" or false
break
end
if (i > 5) or yeardetected then
problems = "za dużo argumentów pozycyjnych"
break
end
if #arg == 0 then
problems = "pusty argument"
break
end
if arg ~= mw.text.trim(arg) then
problems = "nieoczekiwane odstępy na początku lub końcu argumentu"
break
end
if string.match(arg, "^%d+%l?$") then
yeardetected = true
if i == 1 then
problems = "rok musi być ostatnim parametrem po nazwiskach autorów"
break
end
elseif string.match(arg, "^s[%-%.:]%s*%d+") then
problems = "prawdopodobnie nieprawidłowo podany numer strony"
break
elseif string.match(arg, "%s%s") then
problems = "podwójne odstępy"
break
elseif mw.ustring.match(arg, "^%a+%d") then
if not mw.ustring.match(arg, "^[%u%d]+$") then
problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)"
break
end
elseif mw.ustring.match(arg, "^OdeB ") then
-- [[Ordre de Bataille]]
elseif mw.ustring.match(arg, "^%u%l+%u") then
local justification = {
["De"] = true,
["Del"] = true,
["Di"] = true,
["Le"] = true,
["Mac"] = true,
["Mc"] = true,
["Te"] = true, -- TeSelle
["Sar"] = true, -- SarDesai
["Van"] = true, -- VanBuren
["La"] = true, -- LaSalle
}
if not justification[mw.ustring.match(arg, "^%u%l+")] then
problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)"
break
end
end
i = i + 1
end
if not problems then
local odn = pf.args.odn
if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then
problems = "nieoczekiwany parametr odn"
end
end
if not problems then
local s = pf.args.s
if s and string.match(s, "&[a-z]+;") then
problems = "użyto encji HTML w numerze strony"
end
end
if not problems then
if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then
problems = "przestarzały parametr z numerem strony"
end
end
if not problems then
return nil
end
local result = mw.html.create("span"):addClass("problemy-w-odn")
local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}}
local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2)
if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then
result:css("display", "none")
else
result:css("color", "red")
end
local typ;
if(typ_jednostki=="artykuł")then
typ="artykuły";
elseif(typ_jednostki=="artykuł dla dzieci")then
typ="artykuły dla dzieci";
elseif(typ_jednostki=="strona użytkownika")then
typ="strony użytkowników";
elseif(typ_jednostki=="strona brudnopisu projektu")then
typ="strony brudnopisu projektu";
else
typ="strony niepodręcznikowe";
end;
local kategorie_modul=require("Module:Kategorie");
local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}};
result:wikitext(str_kategoria);
result:wikitext("ODN: ", problems)
return tostring(result)
end,
["Wikidane"] = function(frame)
local property = frame.args.cecha
local field = frame.args.pole
local value = frame.args[1]
if not property or not field then
return
end
if not value then
value = frame:getParent().args[field]
if not value or (#value == 0) then
return
end
end
local entity = mw.wikibase.getEntity()
if not entity or not entity.claims or not entity.claims[property] then
return
end
for i, v in ipairs(entity.claims[property]) do
if v.mainsnak.snaktype == "value" then
if value == v.mainsnak.datavalue.value then
return
end
end
end
local template = frame:getParent():getTitle()
local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$")
return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field)
end,
["bez parametrów"] = function(frame)
for k, v in pairs(frame:getParent().args) do
return nil
end
return "tak"
end,
["pole z hostem"] = function (frame)
local host = frame.args.host
if host and (#host > 0) then
for k, v in pairs(frame:getParent().args) do
local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+")
if link then
local uri = mw.uri.new(link)
local valid, _ = mw.uri.validate(uri)
if valid and uri.host and (#uri.host > 0) then
if host == uri.host then
mw.logObject({k, link}, "cały")
return k
end
if #host < #uri.host then
local s1 = '.'..host
local s2 = string.sub(uri.host, -#s1)
if s1 == s2 then
mw.logObject({k, link}, "fragment")
return k
end
end
end
end
end
end
end,
["pola z autorami"] = function (frame)
local result = {}
local nazwisko = frame.args["nazwisko"]
local imie = frame.args["imię"]
local autor = frame.args["autor"]
local link = frame.args["link"]
local maxIndex = tonumber(frame.args["max"])
local prefix = frame.args["przed"] or ""
local suffix = frame.args["po"] or ""
for i = 1, maxIndex do
local s = i == 1 and "" or tostring(i)
local nin = string.gsub(nazwisko, '#', s)
local iin = string.gsub(imie, '#', s)
local ain = string.gsub(autor, '#', s)
local lin = string.gsub(link, '#', s)
local niv = frame:getParent().args[nin]
local iiv = frame:getParent().args[iin]
local aiv = frame:getParent().args[ain]
local liv = frame:getParent().args[lin]
local nis = niv and (#niv > 0)
local iis = iiv and (#iiv > 0)
local ais = aiv and (#aiv > 0)
local lis = liv and (#liv > 0)
local bad = (nis and ais) -- nazwisko -> zbędny autor
or (nis and not iis) -- nazwisko bez imienia
or (lis and not nis and not ais) -- tylko link
or (iis and not nis) -- imię bez nazwiska
if bad then
table.insert(result, i)
end
end
if #result > 0 then
return prefix..mw.text.listToText(result)..suffix
end
end,
["pola z gołymi linkami"] = function (frame)
local result = {}
for k, v in pairs(frame:getParent().args) do
local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+")
if link then
local justified = frame.args[k]
if not justified then
mw.logObject(v,k)
table.insert(result, '"'..k..'"')
end
end
end
return mw.text.listToText(result)
end,
["uri"] = function(frame)
mw.logObject(frame:getParent():getTitle(), "parent:title")
_ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id
local link = frame.args["link"]
local space = frame.args["spacja"]
local strony_modul=require("Module:Strony");
local check = strony_modul.SprawdzanieURL(link)
if check then
return link
end
return (space and (check ~= nil)) and link or ""
end,
["url"] = function(frame)
local link = frame.args[1]
local okText = frame.args[2] or "ok"
local isValid = string.find(link, '{{{') == 1 or checkUri(link)
if isValid then
return okText
end
return ""
end,
["lista nazw niepustych argumentów"] = function(frame)
local argNames = {}
for k, v in pairs(frame:getParent().args) do
if #mw.text.trim(v) > 0 then
table.insert(argNames, tostring(k))
end
end
return table.concat(argNames, ", ")
end,
}
3b3qdx5umemnjickftw42jrsunprzbk
551493
551492
2026-08-11T21:15:11Z
Persino
2851
Anulowano wersję [[Special:Diff/551492|551492]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
551493
Scribunto
text/plain
return {
["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function()
return "Szablony z dodatkową opcją sprawdzania parametrów";
end;
["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame)
local wikikod=frame.args[1];
local sprawdz_modul=require("Module:Sprawdź");
local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]();
local specjalne_modul=require("Module:Specjalne");
return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,}
end;
["Porównaj"] = function(frame)
local pf=frame:getParent();
local config = pf.args[""] or ""
local brudnopis=pf.args["brudnopis"];
local options = mw.text.split(config, "|")
local templateName = mw.text.trim(options[1])
if #templateName == 0 then
local title = mw.title.getCurrentTitle()
if title.namespace == 10 then
templateName = mw.ustring.match(title.text, "^(.-)/opis")
or mw.ustring.match(title.text, "^(.-)/test")
or mw.ustring.match(title.text, "^(.-)/brudnopis")
or title.text
end
if #templateName == 0 then
mw.log("brak nazwy szablonu")
return
end
end
local i = 2
local showparams = true
local showinfo = true
local vertical = false
local brudnopis;
while i <= #options do
local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$")
if(not parametr)then
local option = mw.text.trim(options[i])
if option == "bez wikikodu" then
showparams = false
elseif option == "bez opisu" then
showinfo = false
elseif option == "pionowo" then
vertical = true
end
else
local parametr=mw.text.trim(parametr)
if(parametr=="brudnopis")then
brudnopis=mw.text.trim(wartosc);
end;
end
i = i + 1
end;
local templateTitle = mw.title.new(templateName, 10)
if templateTitle.id == 0 then
mw.log("szablon '"..templateName.."' nie istnieje")
return
end
local sandboxName = brudnopis or (templateName.."/brudnopis")
local sandboxTitle = mw.title.new(sandboxName, 10)
if sandboxTitle.id == 0 then
mw.log("brudnopis '"..sandboxName.."' nie istnieje")
return
end
local templateParams = {}
local params = {}
for k, v in pairs(pf.args) do
if (k ~= "") then
templateParams[k] = v
table.insert(params, k)
end
end
local result = {}
table.insert(result, '<table style="width: 100%;">')
if showparams and (#params > 0) then
local compare = function(a, b)
-- return a < b
if (type(a) == "number") and (type(b) == "number") then
return a < b
end
if (type(a) == "string") and (type(b) == "string") then
return a < b
end
if (type(a) == "number") and (type(b) == "string") then
return true
end
return false
end
table.sort(params, compare)
table.insert(result, "<caption><code>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
local p = mw.text.nowiki(tostring(k))
local v = mw.text.nowiki(templateParams[k])
table.insert(result, p)
table.insert(result, " = ")
table.insert(result, v)
end
table.insert(result, "}}</code></caption>")
end
local templateResult = frame:expandTemplate{ title=templateName, args=templateParams}
local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams}
if templateResult and string.match(templateResult, "^{|") then
templateResult = "\n"..templateResult
end
if sandboxResult and string.match(sandboxResult, "^{|") then
sandboxResult = "\n"..sandboxResult
end
if vertical and showinfo then
table.insert(result, '<tr><th style="width: 15em">[[Szablon:')
table.insert(result, templateName)
table.insert(result, '|Szablon]]</th><td>')
table.insert(result, templateResult)
table.insert(result, '</td></tr><tr><th>[[Szablon:')
table.insert(result, sandboxName)
table.insert(result, '|Brudnopis szablonu]]</th><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
elseif vertical then
table.insert(result, '<tr><td>')
table.insert(result, templateResult)
table.insert(result, '</td></tr><tr><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
else
if showinfo then
table.insert(result, '<tr><th style="width: 50%;">[[Szablon:')
table.insert(result, templateName)
table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:')
table.insert(result, sandboxName)
table.insert(result, '|Brudnopis szablonu]]</th></tr>')
end
table.insert(result, '<tr style="vertical-align: top;"><td>')
table.insert(result, templateResult)
table.insert(result, '</td><td>')
table.insert(result, sandboxResult)
table.insert(result, '</td></tr>')
end
table.insert(result, "</table>")
return table.concat(result)
end,
["Parametry"] = function(frame)
local pf=frame:getParent();
local unknown = {}
local invalid = {}
local deprecated = {}
local nakedurl = {}
local exturl = {}
local files = {};
local templateName;
local function argName(arg)
local span = mw.html.create('span');
span:css('white-space','pre');
span:wikitext(arg);
return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"');
end
local parametry_modul=require("Module:Parametry");
local dodatkowe_elementy=pf.args["dodatkowe parametry"];
local tablica_dodatkowe_elementy;
if(parametry_modul.CzyTak(dodatkowe_elementy))then
tablica_dodatkowe_elementy={};
local __tablica_dodatkowe_elementy=mw.text.split(dodatkowe_elementy,";;",false);
for _,value in ipairs(__tablica_dodatkowe_elementy)do
local tab_dwoch_element=mw.text.split(value,"=",false);
if((tab_dwoch_element[1])and(tab_dwoch_element[2]))then
tablica_dodatkowe_elementy[mw.text.trim(tab_dwoch_element[1])]=mw.text.trim(tab_dwoch_element[2]);
end;
end;
end;
local ramka_modul=require("Module:Ramka");
local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]);
local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]);
local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2)
local required = {};
local repeated = {};
local konieczne = {};
local empty = {};
local noempty = {};
local sprawdz_modul=mw.loadData("Module:Sprawdź/dane");
local tabelka_argumentow_systemowych_funkcji=sprawdz_modul.tabelka_argumentow_systemowych_funkcji;
local tabelka_argumentow_dodatkowych_funkcji=sprawdz_modul.tabelka_argumentow_dodatkowych_funkcji;
local tabelka_argumentow_systemowych_szablonu=sprawdz_modul.tabelka_argumentow_systemowych_szablonu;
local tabelka_parametrow_rodzica={};
local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"];
local szablonowe_modul=require("Module:Szablonowe");
if(parametry_rodzica)then
tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica);
templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle());
else
tabelka_parametrow_rodzica=pf.args;
templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle());
end;
local czy_dokumentacja=((parametry_modul.CzyTak(frame.args["dokumentacja"])) or (parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"])));
if(czy_dokumentacja)then return;end;
local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]);
if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka
tabelka_argumentow_systemowych_szablonu["parametry pudełka"]="";
tabelka_argumentow_systemowych_szablonu["bez błędu"]="";
tabelka_argumentow_systemowych_szablonu["bez szczegółów"]="";
--dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel--
local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica);
for i=1,maksimum,1 do
if(i>1)then
tabelka_argumentow_systemowych_szablonu[i]="txt!";
else
tabelka_argumentow_systemowych_szablonu[1]="txt!;cel";
end;
end;
tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1"
end;
local tablica_mikroszablonow={
["{{+}}"]=";",
["{{!+}}"]="^",
["{{+!}}"]="$",
};
tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji);
tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu);
local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"];
local zmienne_dodane={};
if(zmienna_sprawdzania_parametrow)then
local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false);
for poz,war in ipairs(tabelka_zmiennych)do
local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$")
if((zmienna)and(wartosc))then
zmienna=mw.text.trim(zmienna);
wartosc=mw.text.trim(wartosc);
zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc;
end;
end;
end;
local zmienne_konieczne=function(tab,czy_odjete)
for k, v in pairs(tab)do
if(czy_odjete
or ((not tabelka_argumentow_systemowych_funkcji[k])
and (not tabelka_argumentow_systemowych_szablonu[k])
and (not tabelka_bez_argumentow[k])
)
)then
local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*");
if wydziel and mw.ustring.match(wydziel, "!%s*$") then
required[k] = true
elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then
required[k] = true
end
end;
end;
end;
zmienne_konieczne(frame.args,false);
zmienne_konieczne(zmienne_dodane,true);
zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true);
zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true);
local emptyArg = false
local obslugiwane=function(k)
local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k])
and (tabelka_argumentow_systemowych_funkcji[k]
or tabelka_argumentow_systemowych_szablonu[k]
or zmienne_dodane[k]
or frame.args[k]) or nil
) or nil;
return kind;
end;
local tab={};
local function inne_elementy_konieczne(k)
local element=tab[k]
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then
return true;
end;
end;
end;
end;
return false;
end;
local function tab_inne_elementy_konieczne(k)
local element=tab[k]
local tab_konieczne={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then
table.insert(tab_konieczne,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne;
end;
local function inne_elementy_nieobslugiwane(k)
local element=tab[k]
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(not wartosc[1])then
if(not wartosc[2] and not wartosc[3])then
if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])
and(((wartosc[4])and
(#tabelka_parametrow_rodzica[name2]>0)
)or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0)))
)then
return true;
end;
elseif(not wartosc[2] and wartosc[3])then
return true;
elseif(wartosc[2] and not wartosc[3])then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))
)then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k)
local element=tab[k];
local tab_konieczne_puste={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then
table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne_puste;
end;
local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k)
local element=tab[k];
local tab_konieczne_puste={};
if(element)then
for name2,wartosc in pairs(element)do
if(name2~=k)then
if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then
table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2));
end;
end;
end;
end;
return tab_konieczne_puste;
end;
local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k)
local element=tab[k];
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))
))then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k)
local element=tab[k];
local czy=false;
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then
if((obslugiwane(name2))and(
(not tabelka_parametrow_rodzica[name2])
or((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0))
))then
return true;
end;
end;
end;
end;
end;
end;
return czy;
end;
local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k)
local element=tab[k];
local czy=true;
if(element)then
for name2, wartosc in pairs(element)do
if(name2~=k)then
if(wartosc[1])then
if(wartosc[2])then
if(not wartosc[3])then
if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then
if(#tabelka_parametrow_rodzica[name2]>0)then
return true;
end;
end;
elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then
return true;
end;
end;
end;
end;
end;
end;
return false;
end;
local strony_modul=require("Module:Strony");
local NumerPlik=function(k,v,zapytajnik,tryb)
local czy_zapytajnik=(zapytajnik~="?");
local zero=(czy_zapytajnik and(#v==0));
if(zero)then
table.insert(invalid, argName(k));
elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then
local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,};
if not u then table.insert(invalid,argName(k)) end;
end;
end;
local GrafikaPlik=function(k,v,zapytajnik,przestrzen)
local czy_zapytajnik=(zapytajnik~="?");
local zero=(czy_zapytajnik and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then
if strony_modul.ZnajdowanieNormalnychStronHttp(v) then
table.insert(nakedurl, argName(k))
else
local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, };
if not g then table.insert(invalid, argName(k)) end
end;
end;
end;
local Kind=function(k,kind)
if(not kind)then return;end;
if(tablica_dodatkowe_elementy)then
local element=tablica_dodatkowe_elementy[k];
return kind..(element and (";"..element) or "");
end;
return kind;
end;
for k, v in pairs(tabelka_parametrow_rodzica) do
required[k] = false
local kind=obslugiwane(k);
kind=Kind(k,kind);
local zapytajnik;
local wykrzyknik;
if (kind) then
local kind2;local zmienne;
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
if((not kind2)or(not zmienne)or (not zapytajnik))then
kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$");
end;
end;
end;
if((kind2)and(zmienne))then
local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false);
tab[k]={};
for _,value in ipairs(tab2) do
value=mw.text.trim(value);
local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow);
local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$");
local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$");
local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$");
tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false),
((not wykrzyknik) and true or false),
((not zapytajnik) and true or false),
((not (wykrzyknik=="!!")) and true or false),
};
end;
kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow);
else
kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$");
if(not kind2)or(not zapytajnik)then
kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$");
end;
kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow);
end;
end;
kind=kind and mw.text.trim(kind);
if k == "" then
emptyArg = v
elseif not kind or inne_elementy_nieobslugiwane(k) then
table.insert(unknown, argName(k))
elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then
table.insert(repeated, argName(k));
elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then
table.insert(empty, k);
elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then
table.insert(noempty, k);
elseif inne_elementy_konieczne(k) then
table.insert(konieczne, k);
else
local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$");
if(not old or not __kind)then
__kind,old=mw.ustring.match(kind,"^%s*(.-)%s*%+%s*(old)%s*$");
end;
if(old and __kind)then
table.insert(deprecated, argName(k));
kind=__kind;
end;
if(kind == "")then
-- Kod pusty
elseif (kind == "num") then
if(zapytajnik~="?")then
local n = tonumber(v)
if not n then table.insert(invalid, argName(k)) end
else
local n = (#v == 0) or tonumber(v)
if not n then table.insert(invalid, argName(k)) end
end;
elseif (kind == "uri") then
if(zapytajnik~="?")then
local u = strony_modul.SprawdzanieURL(v)
if not u then table.insert(invalid, argName(k)) end
else
local u = (#v == 0) or strony_modul.SprawdzanieURL(v)
if not u then table.insert(invalid, argName(k)) end
end;
elseif(kind=="txt")then
if(zapytajnik~="?")then
if #v == 0 then table.insert(invalid, argName(k)) end;
end;
elseif (kind=="all")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
end;
end;
end;
elseif(kind=="grafika")then
GrafikaPlik(k,v,zapytajnik,false);
elseif(kind=="grafika*")then
GrafikaPlik(k,v,zapytajnik,true);
elseif (kind == "text") then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u= strony_modul.ZnajdowaniePlikowe(v);
if(u)then
table.insert(files, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v)
if(u)then
table.insert(exturl, argName(k))
end;
end;
end;
end;
end;
elseif(kind == "text-img")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v)
if(u)then
table.insert(exturl, argName(k))
end;
end;
end;
end;
elseif((kind == "text-link")or(kind == "tekst"))then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u= strony_modul.ZnajdowaniePlikowe(v);
if(u)then
table.insert(files, argName(k))
else
local u = strony_modul.SprawdzanieURL(v);
if u then
table.insert(nakedurl, argName(k))
else
local u = strony_modul.ZnajdowanieNormalnychStronHttp(v);
if(u)then
table.insert(nakedurl, argName(k))
end;
end;
end;
end;
elseif ((not old)and(kind == "old")) then
table.insert(deprecated, argName(k));
elseif(kind == "uri*")then
local zero=((zapytajnik~="?")and(#v==0));
if(zero)then
table.insert(invalid, argName(k))
else
local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v))
if not u then table.insert(invalid, argName(k)) end
end;
elseif(kind=="rozmiar")then
NumerPlik(k,v,zapytajnik,false);
elseif(kind=="rozmiar*")then
NumerPlik(k,v,zapytajnik,true);
elseif(kind~="")then
local function regex(kind)
local tab_pattern_wykrzyknik_lub_nie_wzorow={};
local pattern_poczatek=kind;
local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji)
local tab_split_pattern_koniunkcji={};
local pattern_poczatek=pattern_analiza_wzorow_koniunkcji;
repeat
local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$");
if(pattern_poczatek_2 and pattern_koniec)then
table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2);
pattern_poczatek=pattern_koniec;
else
local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$");
if pattern_caly then
table.insert(tab_split_pattern_koniunkcji,pattern_caly);
end;
end;
until not pattern_poczatek_2;
local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={};
for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do
local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$");
table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik});
end;
table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji);
end;
repeat
local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$");
if pattern_poczatek_2 and pattern_koniec then
funkcja_zbierajacy_dane_patternow(pattern_poczatek_2);
pattern_poczatek=pattern_koniec;
else
local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$");
if(pattern_caly)then
funkcja_zbierajacy_dane_patternow(pattern_caly);
end;
break;
end;
until not pattern_poczatek_2;
if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then
for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do
local czy=true;
for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do
local pattern=tab_pattern_elementy_koniunkcji[1];
local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!");
if(pattern)then
if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then
czy=czy and true;
if(not czy)then
break;
end;
else
czy=false;
break;
end;
end
end;
if(czy)then return true;end;
end;
return false;
end;
return nil;
end;
if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then
local wynik=regex(kind);
if((type(wynik)~="nil")and(not wynik))then
table.insert(invalid, argName(k));
elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then
table.insert(nakedurl, argName(k))
elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then
table.insert(nakedurl, argName(k))
end;
end;
end
end;
end;
local missing = {}
local function inny_element2(k)
local element=tab[k]
if(element)then
for name2,wartosc in pairs(element)do
if((wartosc[2])and(k~=name2))then
if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then
return true;
end;
end;
end;
end;
for name,value in pairs(tab)do
for name2,wartosc in pairs(value)do
if((wartosc[2])and(name2==k)and(name2~=name))then
if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then
return true;
end;
end;
end;
end;
return false;
end;
for k, v in pairs(required) do
if v and not inny_element2(k) then
table.insert(missing, argName(k))
end
end
local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]);
local function Szablon_z_sprawdz_parametry()
if(czy_not_category)then return "";end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]());
if(templateName==nazwa_szablonu)then
local sprawdz_modul=require("Module:Sprawdź");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]";
end;
return "";
end;
local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing);
local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne);
local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown);
local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid);
local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated);
local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated);
local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty);
local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty);
local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files);
local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl);
local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl);
if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then
return Szablon_z_sprawdz_parametry();
end
local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]));
local result;
if(czy_informacje)then
result=mw.html.create("span")
result:addClass("problemy");
result:addClass("error");
result:css('white-space','pre-line');
result:css('font-size','unset');
end;
local typ;
local typ_jednostki;
local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]);
----[""]=?---
local config = frame.args[""]
local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$")
local nl = space and string.match(space, "\n") or ""
class = class or config
----
if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then
--local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}}
local pudelko_modul=require("Module:Pudełko");
typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={
["obsługiwane jednostki jako nieopisowe strony"]="tak",
["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"],
["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"],
["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"],
},};
if(typ_jednostki=="artykuł")then
typ="(artykuły)";
elseif(typ_jednostki=="artykuł dla dzieci")then
typ="(artykuły dla dzieci)";
elseif(typ_jednostki=="strona użytkownika")then
typ="(strony użytkowników)";
elseif(typ_jednostki=="strona brudnopisu projektu")then
typ="(strony brudnopisu projektu)";
else
typ="(strony niepodręcznikowe)";
end;
else
typ=nil;
end;
if(czy_informacje)then
if(not czy_nazwij_jednostka)then
if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then
result:css("display", "none");
result:css("color","black");
else
result:css("color", "red")
end
else
result:css("color", "red")
end;
end;
local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]));
local message;
if(czy_informacje or czy_warning)then
message=mw.html.create()
if emptyArg then
message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>")
end
if czy_missing then
message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>")
end
if czy_konieczne then
for _,_konieczne in ipairs(konieczne) do
message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>")
end;
end
if czy_invalid then
message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>")
end
if czy_unknown then
message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>")
end
if czy_deprecated then
message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>")
end
if czy_repeated then
message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>")
end
if czy_empty then
for _,_empty in ipairs(empty) do
message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>")
end;
end
if czy_noempty then
for _,_noempty in ipairs(noempty) do
message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>")
end;
end
if czy_files then
for _,_files in ipairs(files) do
message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".")
end;
end;
if czy_nakedurl then
for _,_nakedurl in ipairs(nakedurl) do
message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".")
end;
end;
if czy_exturl then
for _,_exturl in ipairs(exturl) do
message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".")
end;
end;
end;
local warning;
if(czy_warning)then
warning = mw.html.create('span');
warning:css('color','red');
warning:css('white-space','pre-line');
warning:css('word-break','break-all');
warning:addClass("problemy");
end;
if(templateName)then
mw.logObject(templateName, "templateName")
local dwukropek=mw.ustring.match(templateName,"^%s*:");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName);
local wywolanie;local wywolanie2;
local szablonowe_modul=require("Module:Szablonowe");
if dwukropek or nazwa_przestrzeni_strony~="" then
wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica);
wywolanie2="{{"..templateName.."}}";
if(parametry_modul.CzyTak(category))then
templateName=mw.ustring.gsub(templateName,"^%s*:","");
if(not czy_not_category)then
if(typ)then
category=mw.ustring.format(category,templateName,typ);
else
category=mw.ustring.format(category,templateName);
end;
category=pf:preprocess(category);
end;
class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-"));
end;
else
wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica);
wywolanie2="{{"..templateName.."}}";
if(parametry_modul.CzyTak(category))then
local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)");
local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u");
local szablon;
if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end;
if(not czy_not_category)then
if(typ)then
category=mw.ustring.format(category,szablon,typ);
else
category=mw.ustring.format(category,szablon);
end;
category=pf:preprocess(category);
end;
class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-"));
end;
end
if(czy_warning)then
local strong = mw.html.create('strong');
strong:wikitext("Wywołanie ")
local span = mw.html.create('span');
span:css('font-weight','normal');
span:css('white-space','pre');
span:css('color',"brown");
span:wikitext(wywolanie);
local strong2=mw.html.create('strong');
strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>");
warning:node(strong);
warning:node(span);
warning:node(strong2);
end;
if(czy_informacje)then
local strong = mw.html.create('strong');
strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>");
result:node(strong);
end;
end;
local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]);
if(not czy_usun_linkowanie)then
local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id;
end;
if(czy_informacje or czy_warning)then
message = tostring(message)
end;
if(czy_warning)then
warning:wikitext(message);
mw.addWarning(tostring(warning));
end;
if czy_informacje and class then
result:addClass(class)
end
if(czy_informacje)then result:wikitext(message);end;
local str_category;
if not czy_not_category and category then
str_category=category;
else
str_category="";
end
return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry();
end,
["odn"] = function(frame)
local pf = frame:getParent()
local i = 1
local problems = false
local yeardetected = false
while true do
local arg = pf.args[i]
if not arg then
problems = i == 1 and "brak argumentów" or false
break
end
if (i > 5) or yeardetected then
problems = "za dużo argumentów pozycyjnych"
break
end
if #arg == 0 then
problems = "pusty argument"
break
end
if arg ~= mw.text.trim(arg) then
problems = "nieoczekiwane odstępy na początku lub końcu argumentu"
break
end
if string.match(arg, "^%d+%l?$") then
yeardetected = true
if i == 1 then
problems = "rok musi być ostatnim parametrem po nazwiskach autorów"
break
end
elseif string.match(arg, "^s[%-%.:]%s*%d+") then
problems = "prawdopodobnie nieprawidłowo podany numer strony"
break
elseif string.match(arg, "%s%s") then
problems = "podwójne odstępy"
break
elseif mw.ustring.match(arg, "^%a+%d") then
if not mw.ustring.match(arg, "^[%u%d]+$") then
problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)"
break
end
elseif mw.ustring.match(arg, "^OdeB ") then
-- [[Ordre de Bataille]]
elseif mw.ustring.match(arg, "^%u%l+%u") then
local justification = {
["De"] = true,
["Del"] = true,
["Di"] = true,
["Le"] = true,
["Mac"] = true,
["Mc"] = true,
["Te"] = true, -- TeSelle
["Sar"] = true, -- SarDesai
["Van"] = true, -- VanBuren
["La"] = true, -- LaSalle
}
if not justification[mw.ustring.match(arg, "^%u%l+")] then
problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)"
break
end
end
i = i + 1
end
if not problems then
local odn = pf.args.odn
if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then
problems = "nieoczekiwany parametr odn"
end
end
if not problems then
local s = pf.args.s
if s and string.match(s, "&[a-z]+;") then
problems = "użyto encji HTML w numerze strony"
end
end
if not problems then
if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then
problems = "przestarzały parametr z numerem strony"
end
end
if not problems then
return nil
end
local result = mw.html.create("span"):addClass("problemy-w-odn")
local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}}
local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2)
if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then
result:css("display", "none")
else
result:css("color", "red")
end
local typ;
if(typ_jednostki=="artykuł")then
typ="artykuły";
elseif(typ_jednostki=="artykuł dla dzieci")then
typ="artykuły dla dzieci";
elseif(typ_jednostki=="strona użytkownika")then
typ="strony użytkowników";
elseif(typ_jednostki=="strona brudnopisu projektu")then
typ="strony brudnopisu projektu";
else
typ="strony niepodręcznikowe";
end;
local kategorie_modul=require("Module:Kategorie");
local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}};
result:wikitext(str_kategoria);
result:wikitext("ODN: ", problems)
return tostring(result)
end,
["Wikidane"] = function(frame)
local property = frame.args.cecha
local field = frame.args.pole
local value = frame.args[1]
if not property or not field then
return
end
if not value then
value = frame:getParent().args[field]
if not value or (#value == 0) then
return
end
end
local entity = mw.wikibase.getEntity()
if not entity or not entity.claims or not entity.claims[property] then
return
end
for i, v in ipairs(entity.claims[property]) do
if v.mainsnak.snaktype == "value" then
if value == v.mainsnak.datavalue.value then
return
end
end
end
local template = frame:getParent():getTitle()
local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$")
return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field)
end,
["bez parametrów"] = function(frame)
for k, v in pairs(frame:getParent().args) do
return nil
end
return "tak"
end,
["pole z hostem"] = function (frame)
local host = frame.args.host
if host and (#host > 0) then
for k, v in pairs(frame:getParent().args) do
local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+")
if link then
local uri = mw.uri.new(link)
local valid, _ = mw.uri.validate(uri)
if valid and uri.host and (#uri.host > 0) then
if host == uri.host then
mw.logObject({k, link}, "cały")
return k
end
if #host < #uri.host then
local s1 = '.'..host
local s2 = string.sub(uri.host, -#s1)
if s1 == s2 then
mw.logObject({k, link}, "fragment")
return k
end
end
end
end
end
end
end,
["pola z autorami"] = function (frame)
local result = {}
local nazwisko = frame.args["nazwisko"]
local imie = frame.args["imię"]
local autor = frame.args["autor"]
local link = frame.args["link"]
local maxIndex = tonumber(frame.args["max"])
local prefix = frame.args["przed"] or ""
local suffix = frame.args["po"] or ""
for i = 1, maxIndex do
local s = i == 1 and "" or tostring(i)
local nin = string.gsub(nazwisko, '#', s)
local iin = string.gsub(imie, '#', s)
local ain = string.gsub(autor, '#', s)
local lin = string.gsub(link, '#', s)
local niv = frame:getParent().args[nin]
local iiv = frame:getParent().args[iin]
local aiv = frame:getParent().args[ain]
local liv = frame:getParent().args[lin]
local nis = niv and (#niv > 0)
local iis = iiv and (#iiv > 0)
local ais = aiv and (#aiv > 0)
local lis = liv and (#liv > 0)
local bad = (nis and ais) -- nazwisko -> zbędny autor
or (nis and not iis) -- nazwisko bez imienia
or (lis and not nis and not ais) -- tylko link
or (iis and not nis) -- imię bez nazwiska
if bad then
table.insert(result, i)
end
end
if #result > 0 then
return prefix..mw.text.listToText(result)..suffix
end
end,
["pola z gołymi linkami"] = function (frame)
local result = {}
for k, v in pairs(frame:getParent().args) do
local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+")
if link then
local justified = frame.args[k]
if not justified then
mw.logObject(v,k)
table.insert(result, '"'..k..'"')
end
end
end
return mw.text.listToText(result)
end,
["uri"] = function(frame)
mw.logObject(frame:getParent():getTitle(), "parent:title")
_ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id
local link = frame.args["link"]
local space = frame.args["spacja"]
local strony_modul=require("Module:Strony");
local check = strony_modul.SprawdzanieURL(link)
if check then
return link
end
return (space and (check ~= nil)) and link or ""
end,
["url"] = function(frame)
local link = frame.args[1]
local okText = frame.args[2] or "ok"
local isValid = string.find(link, '{{{') == 1 or checkUri(link)
if isValid then
return okText
end
return ""
end,
["lista nazw niepustych argumentów"] = function(frame)
local argNames = {}
for k, v in pairs(frame:getParent().args) do
if #mw.text.trim(v) > 0 then
table.insert(argNames, tostring(k))
end
end
return table.concat(argNames, ", ")
end,
}
joda4yj9cl22lc87jx4n2jdbxvjss6k
Moduł:StronicowyParser/informacje
828
31875
551522
542231
2026-08-12T01:39:27Z
Persino
2851
551522
Scribunto
text/plain
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return nil;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
n96ntj42mrxzzjldrjxphau0vw1flj2
551523
551522
2026-08-12T02:00:15Z
Persino
2851
551523
Scribunto
text/plain
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return nil;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
mnvv43c4v1rzpg3t7rf12hsv229nxwt
551525
551523
2026-08-12T02:31:41Z
Persino
2851
551525
Scribunto
text/plain
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
tbxlrp0wzuuoggt4nmdcqmfzox0h77d
Moduł:StronicowyParser
828
34347
551509
551127
2026-08-11T23:34:11Z
Persino
2851
551509
Scribunto
text/plain
local p = {}
function p.SpreparowanyWikikodStrony(nazwa_modulu,dokumentacja,inkludowana)
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
return stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,dokumentacja,inkludowana);
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu_aktualna_czy_biezaca,inkludowana)
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nil,nazwa_modulu_aktualna_czy_biezaca,inkludowana,nil);
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
p["DaneUkładuAutonawigacji"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not spis)then return nil;end;
return tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu,tab_lista_artykulow_w_ksiazce.tab_inne_spisy,tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu;
end;
p["SpisyTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki,bez_json)
local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=p["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki);
local tabela={};
tabela.spis_tresci=nazwa_glownego_spisu;
tabela.inne_spisy=tab_inne_spisy;
tabela.dodatkowe_strony_woluminu=dodatkowe_artykuly;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local czy_json=((not bez_json)and(parametry_modul.CzyTak(PobierzParametr("json")))) and true or false;
return czy_json and mw.text.jsonEncode(tabela,mw.text.JSON_PRESERVE_KEYS) or tabela;
end;
p["CzySpisTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local spisy=p["SpisyTreści"](frame,tabela_listy_danych_analizy_ksiazki,true);
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local artykul=PobierzParametr("artykuł");
----
if(artykul)then
artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",};
if((spisy.spis_tresci)and((parametry_modul.TypeTable(spisy.spis_tresci))and((spisy.spis_tresci[1]==artykul)or(spisy.spis_tresci[2]==artykul))or(spisy.spis_tresci==artykul)))then
return "tak";
else
if((spisy.inne_spisy)and(parametry_modul.TypeTable(spisy.inne_spisy)))then
for _,spis_tresci in ipairs(spisy.inne_spisy)do
if((parametry_modul.TypeTable(spis_tresci))and((spis_tresci[1]==artykul)or(spis_tresci[2]==artykul))or(spis_tresci==artykul))then
return "tak";
end;
end;
end;
end;
end;
end;
p["TekstRozdziałuStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.TekstPoNapisieWprowadzeniaTekstuStrony(frame);
end;
p["KtóraSekcjaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.NumerSekcjiStrony(frame);
end;
p["ZwróćSekcjęNagłówkaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame);
end;
p["NastępnyArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
---
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local html_modul=require("Module:Html");
local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true);
local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu;
----
local juz_tak=false;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil;
----
for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do
local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek);
local function Nastepny()
if(not nazwa)then
return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana);
end;
return nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana);
end;
if(juz_tak)then
if(numer>0)then
local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false);
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
return Nastepny();
end;
else
return Nastepny();
end;
else
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
juz_tak=true;
end;
end;
end;
if(juz_tak)then
return "";
else
return "(błąd)";
end;
end;
p["PoprzedniArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
---
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local html_modul=require("Module:Html");
local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true);
local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu;
----
local juz_tak=false;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil;
----
local artykul="";
----
for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do
local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek);
if(numer>0)then
local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false);
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
return artykul;
else
artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana));
end;
else
if(artykul~="")then
return artykul;
else
artykul="";
end;
end;
else
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
return artykul;
else
artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana));
end;
end;
end;
return "(błąd)";
end;
p["PoziomNazwyArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu);
end;
p["PierwszyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local args=stronicowyparser_potrzebne_modul:Args();
for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek);
local function PierwszyArtykul()
if(not nazwa)then
return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
else
return nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
end;
end;
if(numer==0)then
return PierwszyArtykul();
else
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul);
if(numer==numer_artykulu_w_bazie)then
return PierwszyArtykul();
end;
end;
end;
return "(błąd)";
end;
p["OstatniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local ostatni_artykul=nil;
for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek);
local function OstatniArtykul()
if(not nazwa)then
ostatni_artykul=stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
else
ostatni_artykul=nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
end;
end;
if(numer==0)then
OstatniArtykul();
else
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul);
if(numer==numer_artykulu_w_bazie)then
OstatniArtykul();
end;
end;
end;
if(ostatni_artykul)then return ostatni_artykul;end;
return "(błąd)";
end;
p["PomiędzyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(frame);
end;
p["LosowyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuWoluminu(frame);
end;
p["PierwszyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:PierwszyNapisWprowadzeniaTekstu(frame);
end;
p["OstatniNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:OstatniNapisWprowadzeniaTekstu(frame);
end;
p["LiczbaNagłówkówSpisu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LiczbaNapisowaWprowadzeniaTekstu(frame);
end;
p["PomiędzyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame);
if(not val)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local parametry_modul=require("Module:Parametry");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local element=stronicowyparser_potrzebne_modul:LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(frame,numer) or nil;
if(not element)then return "(błąd)";end;
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_table=parametry_modul.TypeTable(element);
if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end;
return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)");
end;
p["LosowyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame);
if(not val)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local parametry_modul=require("Module:Parametry");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local element=stronicowyparser_potrzebne_modul:LosowaStronaWoluminu(frame,numer);
if(not element)then return "(błąd)";end;
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_table=parametry_modul.TypeTable(element);
if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end;
return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)");
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
if(not czy_tabela_artykulu)then
local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1],czy_naglowek);
if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
else
local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1][1],czy_naglowek);
if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local nazwa_artykulu=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu,false) or nil;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(not uzupelniaj_sekcje_artykulow)then
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul_ksiazki=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
artykul_ksiazki=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_ksiazki,czy_naglowek);
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local szablonowe_modul=require("Module:Szablonowe");
local parametry_szablony,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local linia2=artykul_w_bazie[3];
local czy_spis_tresci=mw.ustring.match(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})")
or mw.ustring.match(linia2,"({{%s*[Ss]r%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]r%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or ("|"..a)).."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
else
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
return stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame) or ((not __error)and "(błąd)" or nil);
end;
p["AktualnaKsiążkaArtykułu"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
----
local parametry_modul=require("Module:Parametry");
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local nazwy_modul=require("Module:Nazwy");
----
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local nazwa_artykulu_ksiazki=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
----
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local nazwa_artykulu_dana=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
nazwa_artykulu_dana=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_dana,czy_naglowek);
if(nazwa_artykulu_ksiazki==nazwa_artykulu_dana)then
if(not czy_tabela_artykulu)then
return nazwa_ksiazki;
else
local pelna_nazwa_ksiazki=artykul_w_bazie[1][4];
if((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki[4]))then
return nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki[1],pelna_nazwa_ksiazki[2],pelna_nazwa_ksiazki[3],"")
else
return nazwa_ksiazki;
end;
end;
end;
end;
end;
end;
return ((not __error)and "(błąd)" or nil)
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
return stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame) or ((not __error)and "(błąd)" or nil);
end;
p["PobierzNumerNagłówka"]=function(frame)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerNagłówka"](frame);
end;
p["PobierzNazwęNagłówka"]=function(frame)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęNagłówka"](frame);
end;
p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerArtykułu"](frame,tabela_listy_danych_analizy_ksiazki);
return wartosc;
end;
p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęArtykułu"](frame,tabela_listy_danych_analizy_ksiazki);
return wartosc;
end;
p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzDaneKsiążki"](frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local parametry_modul=require("Module:Parametry");
local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
local czy_centrowany=tab_lista[1][2][4];
if((numer_rozdzialu)and(numer_rozdzialu>0)and(not czy_centrowany))then
if(not tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")..linki_modul["Link wewnętrzny"]{["strona"]=pelna_nazwa_ksiazki,["nagłówek"]=rozdzial,["nazwa"]=rozdzial,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local nazwy_modul=require("Module:Nazwy");
if(nazwa_strony==nazwy_modul["PEŁNANAZWASTRONY"]())then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={[1]="Próbowano załadować bieżącą stronę.",},};
end;
local szablonowe_modul=require("Module:Szablonowe");
local szablon=szablonowe_modul.NazwaSzablonu(nazwa_strony);
local zawartosc=frame:expandTemplate{title=szablon,args={},};
--Tworzenie ramek div--
local divramka=mw.html.create('div');
divramka:addClass('artykułsubst');
local poddivramka=mw.html.create('div');
poddivramka:wikitext(nazwa_strony);
poddivramka:addClass("adres");
poddivramka:css("display","none");
divramka:node(poddivramka);
local divzawartosc=mw.html.create('div');
divzawartosc:addClass("zawartość");
divzawartosc:css("display","block");
divzawartosc:wikitext(zawartosc);
divramka:node(divzawartosc)
--Zwracanie ramki div--
return tostring(divramka:allDone());
end;
p["KsiążkaSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw");
local nazwa_jednostki=PobierzParametr("nazwa jednostki");
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"];
if(str)then
str=frame:preprocess(str);
return str;
end;
return nil;
end;
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy));
local ksiazkowe_modul=require("Module:Książkowe");
local tabela_nazw={};
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw);
local str=((((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki]or{})[nazwa_artykulu];
if(str)then
str=frame:preprocess(str);
return str;
end;
local str=(((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki];
if(str)then
str=frame:preprocess(str);
return str;
end;
return nil;
end;
p["StronaSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw");
local nazwa_jednostki=PobierzParametr("nazwa jednostki");
local tab_stronasubst;
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"];
if(not tab_stronasubst)then return;end;
else
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy));
local tabela_nazw={};
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw);
tab_stronasubst=(((tabela_listy_danych_analizy_ksiazki["StronaSubstInne"] or {})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki];
if(not tab_stronasubst)then return;end;
end;
local pierwszy=parametry_modul["Odstępy"]{nazwa=args[1],["wewnątrz"]="tak",};
local tab_strona=tab_stronasubst[pierwszy];
if(not tab_strona)then return;end;
local link=args["link"];
local czy_link=parametry_modul.CzyTak(link);
local stronasubst=tab_strona[(czy_link and "tak" or "")];
stronasubst=frame:preprocess(stronasubst);
return stronasubst;
end;
p["CzyStronęNumerować"] = function(frame)
local strona=frame.args[1];
local nazwy_modul=require("Module:Nazwy");
strona=nazwy_modul["PEŁNANAZWASTRONY"](strona);
local pudelko_modul=require("Module:Pudełko");
if(strona==pudelko_modul["Strona główna tego projektu"](frame))then
return;
end;
if(strona==pudelko_modul["Strona główna dla dzieci tego projektu"](frame))then
return;
end;
if(mw.ustring.match(strona,"^Szablon:Strona główna/"))then
return;
end;
local zbiory={
["Szablon:Nowe podręczniki miesiąca/Zwycięzca"]=true,
["Wikibooks:Polecane książki"]=true,
["Szablon:Wyróżnienia książek miesiąca/Wyróżniony"]=true,
}
if(zbiory[strona])then
return;
end;
if(mw.ustring.match(strona,"^Szablon:Polecane książki/")
or(mw.ustring.match(strona,"^Szablon:Nowe podręczniki miesiąca/"))
or(mw.ustring.match(strona,"^Szablon:Wyróżnienia książek miesiąca/"))
)then
return;
end;
return "tak";
end;
function p.HNumer(frame)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
if((not p) or (not p.args[1]))then
local blad_module=require("Module:Błąd");
local frame2=p:newChild{args={[1]="Podano złe parametry w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},}
blad_module.error(frame2);
return;
end;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local naglowek,licznik=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(p.args[1]);
if(licznik>6)then
local id=p.args["id"];
local styl=p.args["styl"];
local klasa=p.args["klasa"];
local atrybuty=p.args["atrybuty"];
local parametry_modul=require("Module:Parametry");
return "<h6"..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "")
..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "")
.." class=\"mw-hnumber mw-hnumber-"..licznik..((parametry_modul.CzyTak(klasa)) and (" "..klasa) or "").."\""
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")
..">"..naglowek.."</h6>";
elseif(licznik<1)then
local blad_module=require("Module:Błąd");
return blad_module.error{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="strong",},};
else
local id=p.args["id"];
local styl=p.args["styl"];
local klasa=p.args["klasa"];
local atrybuty=p.args["atrybuty"];
local parametry_modul=require("Module:Parametry");
return "<h"..licznik..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "")
..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "")
..((parametry_modul.CzyTak(klasa)) and " class=\""..klasa.."\"" or "")
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..naglowek.."</h"..licznik..">";
end;
end;
function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local ksiazkowe_modul=require("Module:Książkowe");
local html_modul=require("Module:Html");
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local uzyskana_nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local pelna_nazwa_strony=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki..((uzyskana_nazwa_artykulu~="")and ("/"..uzyskana_nazwa_artykulu) or "");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local nazwa_ksiazki;local nazwa_artykulu;
if(args[1])then
nazwa_artykulu=args[1];
nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
local techniczne_modul=require("Module:Techniczne");
nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
end;
if(args[2])then
nazwa_ksiazki=args[2];
nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
local techniczne_modul=require("Module:Techniczne");
nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=pelna_nazwa_strony,};
end;
local nazwa_artykulu=parametry_modul.CzyTak(nazwa_artykulu) and nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_strony);
local czy_nazwa_ksiazki=parametry_modul.CzyTak(nazwa_ksiazki);
local podana_nazwa_przestrzeni_nazw=czy_nazwa_ksiazki and (nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki)) or ksiazkowe_modul["NazwaPrzestrzeni"](pelna_nazwa_strony);
local podana_nazwa_jednostki=czy_nazwa_ksiazki and (nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki)..((nazwa_artykulu~="")and ("/"..nazwa_artykulu) or "")) or ksiazkowe_modul["NazwaArtykułu"](pelna_nazwa_strony);
local args_nowe={
["nazwa przestrzeni nazw"] = podana_nazwa_przestrzeni_nazw,
["nazwa jednostki"] = podana_nazwa_jednostki,
};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu{args=args_nowe};
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu{args=args_nowe};
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,lista_artykulow_w_ksiazkach_w_danej_przestrzeni_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu{args=args_nowe};
local self_zmienna,tabela_listy_danych_analizy_ksiazki=stronicowyparser_potrzebne_modul:Self();
if((not tab_lista_zmiennych_w_artykule)and(not tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{tab="span",tekst="Nie znalazłem takiej książki."};
end;
local czy_nie_aktualny=(
(self_zmienna.nazwa_przestrzeni_podana~=self_zmienna.nazwa_przestrzeni)
or(self_zmienna.nazwa_przestrzeni_woluminu_podana~=self_zmienna.nazwa_przestrzeni_woluminu)
or(self_zmienna.nazwa_woluminu_podana~=self_zmienna.nazwa_woluminu)
or (self_zmienna.nazwa_podstrony_woluminu_podana~=self_zmienna.nazwa_podstrony_woluminu)
);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tab_lista_zmiennych_w_artykule and tab_lista_zmiennych_w_artykule.TOC or nil)) then
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tab_lista_zmiennych_w_artykule.TOC, czy_nie_aktualny,czy_rozciagnij);
return spis_tresci_artykulu;
elseif(not gdy_pusty_spis_tresci)then
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,nil,czy_nie_aktualny,czy_rozciagnij);
return spis_tresci_artykulu;
end;
end;
p["WykazModułówKsiążki"]=function(frame,czy_rozciagnij)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local self_zmienna=stronicowyparser_potrzebne_modul:Self();
local nazwa_ksiazki=self_zmienna.nazwa_woluminu;
local nazwa_przestrzeni_ksiazki=self_zmienna.nazwa_przestrzeni_woluminu;
local nazwa_przestrzeni=self_zmienna.nazwa_przestrzeni;
local parametry_modul=require("Module:Parametry");
local spis_ksiazkowy=parametry_modul.CzyTak(frame.args["spis książkowy"]);
local spis_rzeczy=parametry_modul.CzyTak(frame.args["spis rzeczy"]);
local tylko_naglowki=parametry_modul.CzyTak(frame.args["nagłówki"]);
local artykul=frame.args["artykuł"];
local wysokosc=frame.args["wysokość"];
local szerokosc=frame.args["szerokość"];
local wykaz_modulow_w_liscie="";
local czy_spis_tresci=nil;
local i=1;
local czy_spisy=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local czy_nienilowy_rozdzial=tab_lista[1][2][1];
local poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
if((artykul)and(poziom_rozdzialu==1))then
if(((m==1)and(not czy_spisy))or((m>1)and(czy_spisy)))then
local spis=tab_lista[1]["spis"];
if(spis)then
if(not czy_spis_tresci)then
local spis_tresci_dany=spis[1];
czy_spis_tresci=(artykul==spis_tresci_dany);
czy_spisy=true;
else
break;
end;
else
local dodatkowe=tab_lista[1]["dodatkowe"];
if(dodatkowe)then
break;
end;
end;
end;
end;
if((not artykul)or((artykul)and((not czy_spisy)or((czy_spisy)and(czy_spis_tresci)))))then
if(tab_lista[2])then
for _,tab_pozycja in ipairs(tab_lista[2])do
local sformatowana_nazwa_artykulu;
if(type(tab_pozycja[1])~="table")then
sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1],"_"," ");
else
sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1][1],"_"," ");
end;
local id=tab_pozycja[4]
if(not tylko_naglowki or id)then
if(not spis_ksiazkowy)then
wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..sformatowana_nazwa_artykulu..'</span>]]</li>';
else
wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|"..sformatowana_nazwa_artykulu.."]]|"..i.."|100%}}";
end;
i=i+1;
end;
end;
end;
end;
end;
if(wykaz_modulow_w_liscie=="")then return nil;end;
if(not spis_ksiazkowy)then
wykaz_modulow_w_liscie="<ul>"..wykaz_modulow_w_liscie.."</ul>";
wykaz_modulow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:25rem;overflow:auto;">'..wykaz_modulow_w_liscie.."</div>";
wykaz_modulow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..';max-width:100%;font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modulow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}';
else
wykaz_modulow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:0.625rem;width:"..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..";max-width:100%;box-sizing:border-box;background-color:white;\">"..wykaz_modulow_w_liscie.."</div>";
end;
local rozwiniety_wikikod=frame:preprocess(wykaz_modulow_w_liscie);
return rozwiniety_wikikod;
end;
p["NazwaAktualnyModuł"]=function()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np');
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
if(nazwa_artykulu==nil)then
return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]";
else
return nazwa_artykulu;
end;
end;
p["WstępDoLicencji"]=function(frame)
local element_licencji_1='<strong>Autor:</strong> '..frame.args[1]..'<BR>';
local element_licencji_2;
if((frame.args[2]~='')and(frame.args[2]~=nil))then
element_licencji_2=frame.args[2]..'<BR>';
end;
local element_licencji_3;
if((frame.args[3]~='')and(frame.args[3]~=nil))then
element_licencji_3='<strong>Email:</strong> '..frame.args[3]..'<BR>';
end;
local element_licencji_4;
if((frame.args[4]~='')and(frame.args[4]~=nil))then
element_licencji_4='<strong>Dotyczy:</strong> '..frame.args[4].."<BR>";
else
element_licencji_4='<strong>Dotyczy:</strong> książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami.<BR>';
end;
local element_licencji_5;
if((frame.args[5]~='')and(frame.args[5]~=nil))then
element_licencji_5=frame.args[5].."<BR>";
else
element_licencji_5='Użytkownika książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami nie zwalnia z odpowiedzialności prawnoautorskiej nieprzeczytanie warunków licencjonowania.<BR>';
end;
local element_licencji_6;
if((frame.args[6]~='')and(frame.args[6]~=nil))then
element_licencji_6='<strong>Umowa prawna:</strong> '..frame.args[6]..'<BR>';
else
element_licencji_6='<strong>Umowa prawna:</strong> [http://creativecommons.org/licenses/by-sa/3.0/deed.pl Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń].<BR>';
end;
local element_licencji_7;
if((frame.args[7]~='')and(frame.args[7]~=nil))then
element_licencji_7=frame.args[7].."<BR>";
else
element_licencji_7='Autor tej książki dołożył wszelką staranność, aby informacje zawarte w książce były poprawne i najwyższej jakości, jednakże nie udzielana jest żadna gwarancja, czy też rękojma. Autor nie jest odpowiedzialny za wykorzystanie informacji zawarte w książce, nawet jeśli wywołaby jakąś szkodę, straty w zyskach, zastoju w prowadzeniu firmy, przedsiębiorstwa lub spółki bądź utraty informacji, niezależnie czy autor (a nawet [https://pl.wikibooks.org Wikibooks]) został powiadomiony o możliwości wystąpienie szkód. Informacje zawarte w książce mogą być wykorzystane tylko na własną odpowiedzialność.<BR>';
end;
local licencja=element_licencji_1..((element_licencji_2)and element_licencji_2 or "")..((element_licencji_3)and element_licencji_3 or "")
..element_licencji_4..element_licencji_5..element_licencji_6..element_licencji_7;
return licencja;
end;
function p.Licencja(frame,czy_rozciagnij)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local menu_z_licencja;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja;
if(licencja)then
if(licencja[1])then
local frame={};
frame.args={licencja[1],licencja[2],licencja[3],licencja[4],licencja[5],licencja[6],licencja[7]};
local ramka_z_licencja='<div style="margin-left:0px;padding:0.1875rem;width:100%;height:auto;box-sizing:border-box;word-break:break-word;">'..p["WstępDoLicencji"](frame)..'</div>';
menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=PokazanaWikitabelowaListaMenu}}';
else
return nil;
end;
local frame=mw.getCurrentFrame();
local rozwiniety_wikikod=frame:preprocess(menu_z_licencja);
return rozwiniety_wikikod;
else
return nil;
end;
end;
function p.Autor(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja;
if(tabela_listy_danych_analizy_ksiazki.licencja)then
if(licencja and licencja[1])then
return licencja[1];
end;
end;
end;
p["NazwaLicencjaWykazSpisTreściModułuKsiążki"]=function(frame)
local prawe_menu="";
local parametry_modul=require("Module:Parametry");
local czy_rozciagnij=parametry_modul.CzyTak(frame.args["rozciągnij"])
if(parametry_modul.CzyTak(frame.args[1]))then
prawe_menu='<div style="margin-top:0.3125rem;font-size:1.9em;line-height:1.5625rem;text-align:left;">'..p["NazwaAktualnyModuł"]()..'</div><hr class=\"pierwsza_strona_spis_treści-hr\"/>';
end;
if(parametry_modul.CzyTak(frame.args[2]))then
local licencja=p.Licencja(frame,czy_rozciagnij);
if(licencja~=nil)then
prawe_menu=prawe_menu..licencja;
else
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local uchwyt_strony=mw.title.getCurrentTitle();
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"]();
local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "na stronach głównych, książek"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "na stronach głównych, książek dla dzieci"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "na stronach głównych, książek użytkowników"
or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "na stronach głównych, książek brudnopisu projektu"
or "na stronach głównych, publikacji")));
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local kategoria_braku_licencji=(not tabela_listy_danych_analizy_ksiazki.korzystane_strona_glowna_nie_istnieje)and"[["..nazwy_np_modul.Category..": Brak licencji, "..element_zdania_kategorii.."]]" or "";
prawe_menu=prawe_menu..kategoria_braku_licencji;
end;
end;
if(parametry_modul.CzyTak(frame.args[3]))then
local wykaz_artykulow=p["WykazModułówKsiążki"](frame,czy_rozciagnij);
if(wykaz_artykulow~=nil)then
prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/>"..wykaz_artykulow;
end;
end;
if(parametry_modul.CzyTak(frame.args[4]))then
local spis_tresci=p.TOC(frame,czy_rozciagnij,true);
if(spis_tresci~=nil)then
prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/><div class=\"pierwsza_strona_spis_treści\">"..spis_tresci.."</div>";
end;
end;
local wysokosc=frame.args["wysokość"];
return "<div style=\"padding:0.3125rem;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:43.75rem;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;width:100%;height:100%;box-sizing:border-box;\"><div style=\"display:flex;flex-direction:column;width:auto;height:auto;box-sizing:border-box;\">"..prawe_menu.."</div></div></div>";
end;
p["SpisTreści"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa_artykulu=args["artykuł"] or args[1] or "Przykładowy artykuł";
local nazwa_ksiazki=args["książka"] or args[2];
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local czy_specjalne=parametry_modul.CzyTak(args["specjalne"]);
local czy_parser=parametry_modul.CzyTak(args["parser"]);
local czy_dokumentacja=parametry_modul.CzyTak(args["dokumentacja"]);
local czy_math=parametry_modul.CzyTak(args["wzory"]);
local czy_math_analiza=parametry_modul.CzyTak(args["wzory-analiza"]);
local czy_bez_przypisow=parametry_modul.CzyTak(args["bez przypisów"]);
czy_dokumentacja=czy_dokumentacja or czy_analiza or czy_specjalne or czy_parser;
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
if(not parametry_modul.CzyTak(nazwa_ksiazki))then
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki;
end;
local brak=(nazwa_artykulu and mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]") or nil) or (nazwa_ksiazki and mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]") or nil);
if(brak~=nil)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"]();
local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów,"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci,"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "stron użytkowników,"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "stron brudnopisu projektu,"
or "stron,")));
return "[["..nazwy_np_modul.Category..":Nazwy "..element_zdania_kategorii.." w spisach treści, zawierają niedozwolone znaki]]";
end;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu);
local techniczne_modul=require("Module:Techniczne");
nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,};
local nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
local pelna_nazwa_strony=((not nazwa_artykulu) or (nazwa_artykulu==""))and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_strony);
if(strona)then
pelna_nazwa_strony=strona;
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
else
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
end;
local szablonowe_modul=require("Module:Szablonowe");
local tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
if((czy_analiza)or(czy_parser))then
tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(pelna_nazwa_strony,false);
else
tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony,not czy_dokumentacja);
if(tekst_artykulu)then
if(czy_dokumentacja)then
tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=szablonowe_modul:UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(pelna_nazwa_strony);
else
tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany=szablonowe_modul:KodujWzoryMatematyczneTekstu(tekst_artykulu);
if((not czy_math)and(not czy_math_analiza))then
tablica_obiektow_strony_dany_modul_uzyskany=nil;
end;
end;
end;
end;
local nazwa=args["nazwa"] or args[3];
local nazwa_strony_artykulu=parametry_modul.CzyTak(nazwa) and nazwa or nazwa_artykulu;
local dodatek=args["dodatek"] or args[4];
local poziom=tonumber(args["poziom"]) or 6;
if(not tekst_artykulu)then
if(nazwa_artykulu~="")then
return "\n"..mw.ustring.rep("=",poziom).."<span style=\"color:red\">[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]</span>"..mw.ustring.rep("=",poziom).."\n";
else
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={[1]="Wywołano szablon z argumentem pierwszym pustym.",tag="span",}};
end;
else
local twor_spisu_tresci="[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(((dodatek)and(dodatek~="")) and (" "..dodatek) or "");
twor_spisu_tresci=mw.ustring.rep("=",poziom)..twor_spisu_tresci..mw.ustring.rep("=",poziom).."\n";
---
local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil;
if(((czy_dokumentacja)and((czy_specjalne)or(czy_parser)))or((not czy_dokumentacja)and(czy_math_analiza)))then
tekst_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_artykulu,pelna_nazwa_strony,tablica_obiektow_strony_dany_modul_uzyskany);
end;
local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
local ulozenia_w_menu_spisu_tresci=stronicowyparser_glownafunkcjazbieraniadanych_modul:SpisRzeczyWedlePodanegoTekstu(tekst_artykulu,pelna_nazwa_strony,nil,nil,nil,nil,nil,nil,nil,nil,tablica_obiektow_strony_dany_modul_uzyskany,nil,tablica_obiektow_strony_danych_kodow_specjalnych_modul,nil,true);
local atrybuty="style=\"margin-left:20px\"";
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local toc=stronicowyparser_potrzebne_modul.TOCSilnik(frame,ulozenia_w_menu_spisu_tresci, atrybuty,czy_bez_przypisow);
local limit=args["limit"];
local czy_limit=parametry_modul.CzyTak(limit);
toc=toc and frame:preprocess(toc) or nil;
return '<div class="toc_ogólnie_spis toc_artykuł toclimit '..(czy_limit and ("toclimit-"..limit) or "")..'">\n'..twor_spisu_tresci..(toc and toc or "")..'</div>';
end;
end;
local function IteratorFunkcja()
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tabela_wypowiedzi=obiekty_modul.tablica_obiektowych_form;
local licznik=1;
return function()
local tabela_obiektu=tabela_wypowiedzi[licznik];
if(not tabela_obiektu)then return nil;end;
local wartosc1=tabela_obiektu[1];
local wartosc2=tabela_obiektu[4];
licznik=licznik+1;
return wartosc1,wartosc2;
end;
end;
local iterator=IteratorFunkcja();
for nazwa_obiektu,czesc_nazwy_funkcji in iterator do
p["Numer"..czesc_nazwy_funkcji] = function(frame)
local stronicowyparser_numerobiektu_modul=require("Module:StronicowyParser/NumerObiektu");
return stronicowyparser_numerobiektu_modul.NumerObiektu(frame,nazwa_obiektu);
end;
end;
p["AnalizujSzablonemStronicowymArtykuł"]=function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return "";
end;
function p.formatowanie()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return tabela_listy_danych_analizy_ksiazki.formatowanie;
end;
function p.StronaZeSzablonemStronaStart()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start;
end;
function p.WstawKategorie(frame)
local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie");
return stronicowyparser_kategorie_modul.WstawKategorie(frame);
end;
function p.CzyStronaSubst(frame,czy_wymusic)
if(czy_wymusic)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_zmiennych_w_artykule)then return nil;end;
return tab_lista_zmiennych_w_artykule.strona_zbiorcza;
end;
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
return "tak";
end;
end;
p["CzyArtykułKsiążki"]=function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
if(tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then
return "tak";
end;
end;
return p;
9m6iopahgj9vmfyyvs2jgdycja4wunq
Szablon:LinkUstęp
10
42097
551484
551008
2026-08-11T18:41:48Z
Persino
2851
551484
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkOgólne
| 1 = {{{strona|{{{s|{{{1}}}}}}}}}
| 2 = {{safesubst:{{#if:{{{od dużej|{{{b|}}}}}}|ucfirst|{{#if:{{{od małej|{{{m|}}}}}}|lcfirst|#if:tak}}}}|{{{wyświetlana|{{{w|{{{4|{{Jeśli niepuste|{{Dopasuj|ciąg={{{strona|{{{s|{{{1}}}}}}}}}|wzór=#%s*([^#]-)%s*$}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{strona|{{{s|{{{1}}}}}}}}}|wzór=^[^/]*[%s_]*:[%s_]*([^/][^/]-)[%s_]*$}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{strona|{{{s|{{{1}}}}}}}}}|wzór=/[^/]*[%s_]*:[%s_]*([^/][^/]-)[%s_]*$}}|{{msg:NAZWASUBSTRONY|{{{strona|{{{s|{{{1}}}}}}}}}}}}}}}}}}}}}}}}}}}}
| klucz projektu = {{{klucz projektu|{{{k|{{{3|}}}}}}}}}
| kod języka = {{{kod języka|{{{kj|}}}}}}
| kod projektu = {{{kod projektu|{{{kp|}}}}}}
| miano przestrzeni nazw = {{{miano przestrzeni nazw|{{{f|{{{2|}}}}}}}}}
| dyskusja = {{{dyskusja|{{{d|}}}}}}
| bez znaczników = {{{bez znaczników|{{{bz|}}}}}}
| bez przetwarzania = {{{bez przetwarzania|{{{bp|}}}}}}
| analiza = {{{analiza|{{{a|}}}}}}
| bez argumentów rodzica = strona;s;1;wyświetlana;w;4;klucz projektu;k;3;kod języka;kj;kod projektu;kp;miano przestrzeni nazw;f;2;dyskusja;d;bez znaczników;bz;bez przetwarzania;bp;analiza;a;
| zmienna z parametrami rodzica = {{#if:{{{potomek|}}}||tak}}
| zmienna sprawdzania parametrów = wyświetlana=;4;w;!alias miana przestrzeni nazw?!;!alias?!;!i?!;;w=;4;wyświetlana;!alias miana przestrzeni nazw?!;!alias?!;!i?!;;4=;wyświetlana;w;!alias miana przestrzeni nazw?!;!alias?!;!i?!;;2=;miano przestrzeni nazw;f;;i=alias;alias miana przestrzeni nazw;;alias=i;alias miana przestrzeni nazw;;alias miana przestrzeni nazw=i;alias;;od dużej=;b;;b=;od dużej;;od małej=;m;;m=;od małej
| dodatkowe parametry = miano przestrzeni nazw=2;;f=2;;klucz projektu=3
| bez argumentów szablonu = 2;i;alias;alias miana przestrzeni nazw
}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
ax4u7jnnshyv1b9hjsj9yq5dhq5i9fa
551494
551484
2026-08-11T21:33:17Z
Persino
2851
551494
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkOgólne
| 1 = {{{strona|{{{s|{{{1}}}}}}}}}
| 2 = {{safesubst:{{#if:{{{od dużej|{{{b|}}}}}}|ucfirst|{{#if:{{{od małej|{{{m|}}}}}}|lcfirst|#if:tak}}}}|{{{wyświetlana|{{{w|{{{4|{{Jeśli niepuste|{{Dopasuj|ciąg={{{strona|{{{s|{{{1}}}}}}}}}|wzór=#%s*([^#]-)%s*$}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{strona|{{{s|{{{1}}}}}}}}}|wzór=^[^/]*[%s_]*:[%s_]*([^/][^/]-)[%s_]*$}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{strona|{{{s|{{{1}}}}}}}}}|wzór=/[^/]*[%s_]*:[%s_]*([^/][^/]-)[%s_]*$}}|{{msg:NAZWASUBSTRONY|{{{strona|{{{s|{{{1}}}}}}}}}}}}}}}}}}}}}}}}}}}}
| klucz projektu = {{{klucz projektu|{{{k|{{{3|}}}}}}}}}
| kod języka = {{{kod języka|{{{kj|}}}}}}
| kod projektu = {{{kod projektu|{{{kp|}}}}}}
| miano przestrzeni nazw = {{{miano przestrzeni nazw|{{{f|{{{2|}}}}}}}}}
| dyskusja = {{{dyskusja|{{{d|}}}}}}
| bez znaczników = {{{bez znaczników|{{{bz|}}}}}}
| bez przetwarzania = {{{bez przetwarzania|{{{bp|}}}}}}
| analiza = {{{analiza|{{{a|}}}}}}
| bez argumentów rodzica = strona;s;1;wyświetlana;w;4;klucz projektu;k;3;kod języka;kj;kod projektu;kp;miano przestrzeni nazw;f;2;dyskusja;d;bez znaczników;bz;bez przetwarzania;bp;analiza;a;
| zmienna z parametrami rodzica = {{#if:{{{potomek|}}}||tak}}
| zmienna sprawdzania parametrów = wyświetlana=;4;w;!alias miana przestrzeni nazw?!;!alias?!;!i?!;;w=;4;wyświetlana;!alias miana przestrzeni nazw?!;!alias?!;!i?!;;4=;wyświetlana;w;!alias miana przestrzeni nazw?!;!alias?!;!i?!;;2=;miano przestrzeni nazw;f;;i=alias;alias miana przestrzeni nazw;;alias=i;alias miana przestrzeni nazw;;alias miana przestrzeni nazw=i;alias;;od dużej=;b;;b=;od dużej;;od małej=;m;;m=;od małej
| dodatkowe parametry = miano przestrzeni nazw=2;;f=2;;klucz projektu=3
| bez argumentów szablonu = {{Jeśli niepuste|{{{bez argumentów szablonu|}}}|po lewy=;}}i;alias;alias miana przestrzeni nazw
}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
ex0hy9eyf9qlsx4pdzu1xs8fth0du1x
Moduł:Ramka
828
44224
551363
534994
2026-08-11T14:26:25Z
Persino
2851
551363
Scribunto
text/plain
local p={};
local function ParserBlokowy(frame, co_ma_wywolac)
local pf=frame:getParent();
local nazwa_szablonu_modulu_lub_parsera="Nazwa";
local szablon_modul_lub_parser=frame.args[nazwa_szablonu_modulu_lub_parsera];
local argumenty_szablonu_modulu_lub_parsera={};
local tabela_by_sprawdzic_czy_powstarzaja_sie_parametry_dzieci_i_rodzica={};
local ramka_dane_modul=mw.loadData("Module:Ramka/dane");
local bez_parametrowa_tablica=ramka_dane_modul.bez_parametrowa_tablica;
local bez_parametrow={};
if(co_ma_wywolac==1)then bez_parametrow["Funkcja"]=true;end;
local parametry_modul=require("Module:Parametry");
local tab_usun_parametry;
local czy_usun=frame.args["usuń z parametrów ramki"];
if(parametry_modul.CzyTak(czy_usun))then
tab_usun_parametry={};
local iter=mw.text.gsplit(czy_usun,";",true);
for name in iter do
name=mw.ustring.gsub(name,"^[%s_]*","");
name=mw.ustring.gsub(name,"[%s_]*$","");
name=tonumber(name) or name;
tab_usun_parametry[name]=true;
end;
end;
for nazwa_parametru,wartosc_parametru in pairs(frame.args) do
if(((not tab_usun_parametry)or(not tab_usun_parametry[nazwa_parametru]))
and((type(nazwa_parametru)=="number")or((type(nazwa_parametru)=="string")and(not bez_parametrow[nazwa_parametru])and(not bez_parametrowa_tablica[nazwa_parametru])))
)then
tabela_by_sprawdzic_czy_powstarzaja_sie_parametry_dzieci_i_rodzica[nazwa_parametru]=nazwa_parametru;
argumenty_szablonu_modulu_lub_parsera[nazwa_parametru]=wartosc_parametru;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
local tabela_bez_argumentow=p.RozpakujArgumenty(frame.args["bez argumentów rodzica"]);
local zmienna_z_parametrami_rodzica=frame.args["zmienna z parametrami rodzica"];
local czy_przekazac_parametry_rodzica=zmienna_z_parametrami_rodzica and parametry_modul.CzyTak(zmienna_z_parametrami_rodzica) or false;
----
local frame_sprawdzenia_args=frame.args["bez dodatkowych sprawdzeń"];
local bez_dodatkowych_sprawdzen;
local czy_podano_bez_dodatkowych_sprawdzen;
if(frame_sprawdzenia_args)then
czy_podano_bez_dodatkowych_sprawdzen=frame_sprawdzenia_args and true or false;
bez_dodatkowych_sprawdzen=parametry_modul.CzyTak(frame_sprawdzenia_args);
else
local frame_sprawdzenia_pf_args=pf.args["bez dodatkowych sprawdzeń"];
if(frame_sprawdzenia_pf_args)then
czy_podano_bez_dodatkowych_sprawdzen=frame_sprawdzenia_pf_args and true or false;
bez_dodatkowych_sprawdzen=parametry_modul.CzyTak(frame_sprawdzenia_pf_args);
end;
end;
local z_dodatkowymi_sprawdzeniami=not(bez_dodatkowych_sprawdzen);
---
local PakujArgumentyRamki = function(args)
local czy_tylko_ze_zmienna_bez_argumentow_szablonu=args["zmienna z argumentami ramki"];
if(not parametry_modul.CzyTak(czy_tylko_ze_zmienna_bez_argumentow_szablonu))then return args["bez argumentów szablonu"];end;
local tabelka1={};
for nazwa_parametru,_ in pairs(args)do
if((type(nazwa_parametru)=="number")or((type(nazwa_parametru)=="string")and(not bez_parametrow[nazwa_parametru])and(not bez_parametrowa_tablica[nazwa_parametru])))then
tabelka1[nazwa_parametru]=true;
end;
end;
local tabelka2=(args["bez argumentów szablonu"]) and p.RozpakujArgumenty(args["bez argumentów szablonu"]);
local tabelka=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2);
local tablica_mikroszablonow={
[";"]="{{+}}",
};
local str="";
for name,_ in pairs(tabelka) do
str=str..((str~="")and ";" or "")..mw.ustring.gsub(mw.text.trim(name),".",tablica_mikroszablonow);
end;
return str,tabelka2;
end;
local bez_argumentow_szablonu=nil;
if(czy_przekazac_parametry_rodzica)then
if(z_dodatkowymi_sprawdzeniami)then
local str=p.PakujParametry(pf.args);
argumenty_szablonu_modulu_lub_parsera["parametry rodzica"]=str;
end;
argumenty_szablonu_modulu_lub_parsera["potomek"]="tak";
argumenty_szablonu_modulu_lub_parsera["bez argumentów szablonu"],bez_argumentow_szablonu=PakujArgumentyRamki(frame.args);
if(czy_podano_bez_dodatkowych_sprawdzen)then
argumenty_szablonu_modulu_lub_parsera["bez dodatkowych sprawdzeń"]=bez_dodatkowych_sprawdzen and "tak" or "";
end;
argumenty_szablonu_modulu_lub_parsera["nazwa szablonu rodzica"]=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle());
else
local function ZmiennaZNazwaSzablonuRodzica()
local czy_ze_nazwa_szablonu=frame.args["zmienna z nazwą szablonu rodzica"];
if(parametry_modul.CzyTak(czy_ze_nazwa_szablonu))then
argumenty_szablonu_modulu_lub_parsera["nazwa szablonu rodzica"]=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle());
end;
end;
local z_argumentami_najwyzszego_rodzica=not parametry_modul.CzyTak(tabela_bez_argumentow["nie potomek"]);
if(z_argumentami_najwyzszego_rodzica)then
local potomek=parametry_modul.CzyTak(pf.args["potomek"]);
if(potomek)then
local parametry_rodzic=pf.args["parametry rodzica"];
if(parametry_rodzic)then
if(z_dodatkowymi_sprawdzeniami)then
argumenty_szablonu_modulu_lub_parsera["parametry rodzica"]=parametry_rodzic;
end;
argumenty_szablonu_modulu_lub_parsera["potomek"]="tak";
argumenty_szablonu_modulu_lub_parsera["bez argumentów szablonu"],bez_argumentow_szablonu=PakujArgumentyRamki(frame.args);
if(czy_podano_bez_dodatkowych_sprawdzen)then
argumenty_szablonu_modulu_lub_parsera["bez dodatkowych sprawdzeń"]=bez_dodatkowych_sprawdzen and "tak" or "";
end;
argumenty_szablonu_modulu_lub_parsera["nazwa szablonu rodzica"]=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle());
else
ZmiennaZNazwaSzablonuRodzica();
end;
else
ZmiennaZNazwaSzablonuRodzica();
end;
else
ZmiennaZNazwaSzablonuRodzica()
end;
end;
local czy_bez_argumentow_nienazwanych_rodzica=parametry_modul.CzyTak(frame.args["bez argumentów nienazwanych rodzica"]);
local czy_parametry_pudelka=parametry_modul.CzyTak(frame.args["parametry funkcji modułu pudełek"]);
local czy_parametry_pudelka_podstawowe=parametry_modul.CzyTak(frame.args["parametry podstawowe funkcji modułu pudełek"])
local pudelko_modul=require("Module:Pudełko");
for nazwa_parametru,wartosc_parametru in pairs(pf.args) do
if(((type(nazwa_parametru)=="number")or((type(nazwa_parametru)=="string")and(not bez_parametrow[nazwa_parametru])and(not bez_parametrowa_tablica[nazwa_parametru])))and((not bez_argumentow_szablonu)or(not bez_argumentow_szablonu[nazwa_parametru])))then
if((not tabela_by_sprawdzic_czy_powstarzaja_sie_parametry_dzieci_i_rodzica[nazwa_parametru])
and(not tabela_bez_argumentow[nazwa_parametru])
and((not czy_bez_argumentow_nienazwanych_rodzica)or((czy_bez_argumentow_nienazwanych_rodzica)and(not tonumber(nazwa_parametru)))
))then
local czy_dodac_do_parametrow;
if czy_parametry_pudelka or czy_parametry_pudelka_podstawowe then
local czy_dodac_do_parametrow=((not czy_parametry_pudelka_podstawowe)
and mw.ustring.match(nazwa_parametru,"^nazwa przestrzeni nazw %d+$")
and not pudelko_modul.CzyNiepoprawnaNazwa(wartosc_parametru))
or (mw.ustring.match(nazwa_parametru,"^nazwa przestrzeni nazw$")
and not pudelko_modul.CzyNiepoprawnaNazwa(wartosc_parametru))
or ((not czy_parametry_pudelka_podstawowe)
and mw.ustring.match(nazwa_parametru,"^nazwa jednostki %d+$")
and wartosc_parametru~=""
and not pudelko_modul.CzyNiepoprawnaNazwa(wartosc_parametru))
or (mw.ustring.match(nazwa_parametru,"^nazwa jednostki$")
and wartosc_parametru~=""
and not pudelko_modul.CzyNiepoprawnaNazwa(wartosc_parametru))
or ((not czy_parametry_pudelka_podstawowe)
and mw.ustring.match(nazwa_parametru,"^typ jednostki %d+$")
and wartosc_parametru~=""
and not pudelko_modul.CzyNiepoprawnaNazwa(wartosc_parametru))
or (mw.ustring.match(nazwa_parametru,"^typ jednostki$")
and wartosc_parametru~=""
and not pudelko_modul.CzyNiepoprawnaNazwa(wartosc_parametru));
if(czy_dodac_do_parametrow)then
argumenty_szablonu_modulu_lub_parsera[nazwa_parametru]=wartosc_parametru;
end;
else
argumenty_szablonu_modulu_lub_parsera[nazwa_parametru]=wartosc_parametru;
end;
end;
end;
end;
if(co_ma_wywolac==0)then
return pf:expandTemplate{title=szablon_modul_lub_parser,args=argumenty_szablonu_modulu_lub_parsera};
elseif(co_ma_wywolac==1)then
local frame2=pf:newChild{args=argumenty_szablonu_modulu_lub_parsera};
local funkcja=frame.args["Funkcja"];
return require("Module:"..szablon_modul_lub_parser)[funkcja](frame2);
elseif(co_ma_wywolac==2)then
return pf:callParserFunction{name=szablon_modul_lub_parser,args=argumenty_szablonu_modulu_lub_parsera};
else
return pf:expandTemplate{title=szablon_modul_lub_parser,args=argumenty_szablonu_modulu_lub_parsera};
end;
end;
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
local parametry_modul=require("Module:Parametry");
local czy_akapit=parametry_modul.CzyTak(frame.args["akapit"]);
local akapit=czy_akapit and "\n\n" or "";
local przecinek=parametry_modul.CzyTak(frame.args["przecinek"]) and ", " or "";
local czy_nowa_linia=parametry_modul.CzyTak(frame.args["nowa linia"]);
local nowa_linia=czy_nowa_linia and "\n" or "";
local wyliczanka=parametry_modul.CzyTak(frame.args["wyliczanka"]);
local przecinek_na_poczatku=parametry_modul.CzyTak(frame.args["początek"]);
local myslnik=parametry_modul.CzyTak(frame.args["myślnik"]);
local warunkowe=parametry_modul.CzyTak(frame.args["warunkowe"]);
local lancuch_znakow="";
local koniec=#tab_lancuch;
for i=1,koniec,1 do
local lancuch=tab_lancuch[i];
lancuch=mw.ustring.gsub(lancuch,"{{min}}",minimum);
lancuch=mw.ustring.gsub(lancuch,"{{max}}",maksimum);
if(not wyliczanka)then
lancuch_znakow=lancuch_znakow..((i~=1)and przecinek or ((przecinek_na_poczatku)and przecinek or ((myslnik)and " - " or "")));
else
lancuch_znakow=lancuch_znakow..((i==1)and ((przecinek_na_poczatku)and ", " or "") or ((i<koniec)and ", " or " i "));
end;
lancuch_znakow=lancuch_znakow..((i~=1)and (czy_akapit and akapit or nowa_linia) or "")..lancuch;
end;
if(warunkowe)then
local parametr=parametry_modul.CzyTak(frame.args["parametr"]);
return p.InstrukcjeWarunkowe(lancuch_znakow,true,parametr);
else
return lancuch_znakow;
end;
end;
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)
local ciag_warunkowe_fun=function(s)
local function ParserWiki(s,wywolanie)
local czy_parser=mw.ustring.match(s,wywolanie);
if(czy_parser)then
return mw.getCurrentFrame():preprocess(s);
end;
end
return ParserWiki(s,"^({{%s*#if:[^{}]*}})$")
or ParserWiki(s,"^({{%s*#ifeq:[^{}]*}})$")
or ParserWiki(s,"^({{%s*#switch:[^{}]*}})$")
or ParserWiki(s,"^({{%s*#ifexpr:[^{}]*}})$")
or ParserWiki(s,"^({{%s*#expr:[^{}]*}})$")
or ParserWiki(s,"^({{%s*#iferror:[^{}]*}})$")
or ParserWiki(s,"^({{%s*#ifexist:[^{}]*}})$")
or nil;
end;
local ciag,_=mw.ustring.gsub(ciag,"{{[^{}]+}}",ciag_warunkowe_fun);
if(derektywy_specjalne)then
local ramka_dane_modul=mw.loadData("Module:Ramka/dane");
local tab_zamieniane=ramka_dane_modul.tablica_warunkowe_i_parametr;
ciag=mw.ustring.gsub(ciag,"(__[^_]+__)",function(s)
local tab_szablon=tab_zamieniane[s];
if(tab_szablon)then
if(not derektywy_parametrowe)then return tab_szablon[1];end;
return tab_szablon[2];
end;
return nil;
end);
return ciag;
end;
return ciag;
end;
p.RozpakujArgumenty = function(zmienna_z_argumentami)
local tablica_mikroszablonow={
["{{+}}"]=";",
};
local tabela_bez_argumentow={};
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(zmienna_z_argumentami))then
local iter=mw.text.gsplit(zmienna_z_argumentami,";",true);
local podlancuch;
for podlancuch in iter do
podlancuch=mw.text.trim(podlancuch);
local liczba=tonumber(podlancuch);
tabela_bez_argumentow[liczba or mw.ustring.gsub(podlancuch,"{{[^{}]+}}",tablica_mikroszablonow)]=true;
end;
end;
return tabela_bez_argumentow;
end;
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS);
end;
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
p["Moduł"] = function(frame)
return ParserBlokowy(frame, 1);
end;
p.Parser = function(frame)
return ParserBlokowy(frame, 2);
end;
p.Q =function(frame)
local parametry_modul=require("Module:Parametry");
local args_szablon=parametry_modul.PobierzArgsParametry(frame);
local args_ksiazka={};
for name,value in pairs(args_szablon)do
if(not parametry_modul.TypeNumber(name))then
args_ksiazka[name]=value;
elseif(name>1)then
args_ksiazka[name-1]=value;
elseif(name~=1)then
args_ksiazka[name]=value;
end;
end;
if(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))then
args_ksiazka["wyspecjalizowana"]=nil;
end;
local szablon=args_szablon[1];
local szablon_ksiazka=p["N"]{args={[1]=szablon,}};
local pf=frame:getParent();
return pf:expandTemplate{title=szablon_ksiazka,args=args_ksiazka,};
end;
p.N=function(frame)
local parametr=frame.args[1];
local parametry_modul=require("Module:Parametry");
local parametr_p=tonumber(frame.args["p"]) or 0;
local parametr_n=parametry_modul.CzyTak(frame.args["n"]);
local szablon=parametry_modul["CzyTakCiąg"](parametr) and parametr or ((parametr_p==1) and "Nieznany moduł" or ((parametr_p==2) and "Nieznana kategoria" or "Nieznany szablon"));
szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",};
szablon=mw.getContentLanguage():ucfirst(szablon);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local przestrzen=((parametr_p==1) and nazwy_np_modul.Module or ((parametr_p==2) and nazwy_np_modul.Category or nazwy_np_modul.Template));
local szablon_ksiazka=przestrzen..":Książka:"..szablon;
local parametr_k=parametry_modul.CzyTak(frame.args["k"]);
if(not parametr_k)then
local techniczne_modul=require("Module:Techniczne");
local liczba_title,tab_title=techniczne_modul.PoliczZbiory{[1]=szablon_ksiazka,tekst=true,};
szablon_ksiazka=((liczba_title>0)and (szablon_ksiazka) or (przestrzen..":"..szablon));
end;
if(parametr_n)then
local nazwy_modul=require("Module:Nazwy");
szablon_ksiazka=nazwy_modul["NAZWASTRONY"]{nazwa=szablon_ksiazka,};
end;
return szablon_ksiazka;
end;
p.A=function(frame)
local parametr=frame.args[1];
local parametry_modul=require("Module:Parametry");
local parametr_p=parametry_modul.CzyTak(frame.args["p"]);
local przestrzen;
if(parametr_p)then
local tabela_nazw={};
local nazwy_modul=require("Module:Nazwy");
przestrzen=nazwy_modul["NAZWAPRZESTRZENI"](parametr,tabela_nazw);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((przestrzen~=nazwy_np_modul.Template)and(przestrzen~=nazwy_np_modul.Module)and(przestrzen~=nazwy_np_modul.Category))then
return parametr;
end;
parametr=nazwy_modul["NAZWASTRONY"](parametr,tabela_nazw);
end;
parametr=mw.ustring.gsub(parametr,"^[Kk]siążka:","");
parametr=(parametr_p and ((przestrzen~="") and (przestrzen..":") or "") or "")..parametr;
return parametr;
end;
p.Powtarzaj = function(frame)
local pf=frame:getParent();
local parametry_modul=require("Moduł:Parametry");
local czy_parametry=parametry_modul.CzyTak(frame.args["parametry"]);
local tabela={};
local zacznij_nazwane;
local parametry_modul=require("Module:Parametry");
if(czy_parametry)then
local FormatujTabela=function(parametr_tab)
return{
parametry_modul.CzyTak(parametr_tab[1]),
parametry_modul.CzyTak(parametr_tab[2]),
tonumber(parametr_tab[3]) or 0,
tonumber(parametr_tab[4]),
tonumber(parametr_tab[5]),
};
end;
local WstawDoTabeli=function(znaczenia_parametr)
local parametr,wartosc=mw.ustring.match(znaczenia_parametr,"%s*([%w_%-][%w%s_%-]-)%s*=%s*(.-)%s*$");
if(parametr and wartosc)then
if((not tonumber(parametr))and(not tabela[parametr]))then
local parametr_tab=mw.text.split(wartosc,"%s*,%s*",false);
tabela[parametr]=FormatujTabela(parametr_tab);
end;
else
if((not tonumber(znaczenia_parametr))and(not tabela[znaczenia_parametr]))then
tabela[znaczenia_parametr]={};
end;
end;
end;
local iter=mw.text.gsplit(mw.text.trim(frame.args["parametry"]),"%s*;%s*",false);
local czy=true;
for znaczenia_parametr in iter do
znaczenia_parametr=mw.text.trim(znaczenia_parametr);
local czy_nie_omijac=parametry_modul.CzyTak(znaczenia_parametr);
if(czy_nie_omijac)then
if(czy)then
zacznij_nazwane=tonumber(znaczenia_parametr);
czy=false;
if(not zacznij_nazwane)then
zacznij_nazwane=0;
WstawDoTabeli(znaczenia_parametr);
end;
else
WstawDoTabeli(znaczenia_parametr);
end;
end;
end;
end;
local tabela_dodatkowe={};
local czy_dodatkowe=parametry_modul.CzyTak(frame.args["dodatkowe"]);
if(czy_dodatkowe)then
local iter=mw.text.gsplit(mw.text.trim(frame.args["dodatkowe"]),"%s*;%s*",false);
for name in iter do
tabela_dodatkowe[name]=true;
end;
end;
if(not zacznij_nazwane)then zacznij_nazwane=0;end;
local function LiczbaZmiennychOOgolniePodstawieParametru(podstawa_parametru_wyszukiwana)
local args=pf.args;
local maksymalna_liczba_nazwy_danego_parametru=0;
for nazwa_parametru, wartosc_parametru in pairs(args)do
local czy_jedynka=false;
if(type(nazwa_parametru)=="string")then
local nazwa_podstawy_parametru,spacja,liczba=mw.ustring.match(nazwa_parametru,"^([%a%-%s]*[%a%-])(%s?)(%d+)$");
if(not nazwa_podstawy_parametru and not spacja and not liczba)then
nazwa_podstawy_parametru=nazwa_parametru;
spacja="";
liczba=1;
czy_jedynka=true;
end;
local subtab=tabela[nazwa_podstawy_parametru];
if(subtab)then
local nie_spacja_parametru=subtab[1];
local czy_z_jedynka=subtab[2];
liczba=tonumber(liczba) or 0;
if((not nie_spacja_parametru and (((spacja==" ")and ((liczba>1)or((not czy_jedynka)and(czy_z_jedynka))or((not czy_z_jedynka)and(not czy_jedynka)))) or(((not czy_z_jedynka)and(czy_jedynka))and(spacja=="" and liczba==1))))
or (nie_spacja_parametru and (((spacja=="")and ((liczba>1)or((not czy_jedynka)and(czy_z_jedynka))or((not czy_z_jedynka)and(not czy_jedynka)))) or(((not czy_z_jedynka)and(czy_jedynka))and(spacja=="" and liczba==1))))
)then
if(((podstawa_parametru_wyszukiwana) and (nazwa_podstawy_parametru==podstawa_parametru_wyszukiwana))or(not podstawa_parametru_wyszukiwana))then
maksymalna_liczba_nazwy_danego_parametru=math.max(maksymalna_liczba_nazwy_danego_parametru,liczba);
end;
end;
end;
end;
end;
return maksymalna_liczba_nazwy_danego_parametru;
end;
local MaksymalnyLiczonyNumerElementowPodanychPodstawNazwyParametrow=function()
local maksimum_all=0;
for wartosc_parametru,dane_parametru in pairs(tabela)do
if(parametry_modul.TypeString(wartosc_parametru))then
if(not tabela_dodatkowe[wartosc_parametru])then
local maksymalna_liczba_nazwy_danego_parametru=LiczbaZmiennychOOgolniePodstawieParametru(wartosc_parametru);
local maksimum=maksymalna_liczba_nazwy_danego_parametru-(dane_parametru[3] or 0);
maksimum_all=math.max(maksimum-zacznij_nazwane,maksimum_all);
end;
end;
end;
return maksimum_all;
end;
local zacznij_na_poczatku,skoncz_na_koncu;
local tekst_do_analizy=frame.args[1];
if(not frame.args[1])then return "(brak parametru do analizy)";end;
local czy_tekst=parametry_modul.CzyTak(tekst_do_analizy);
if(not czy_tekst)then return "(parametr do analizy pusty)";end;
local start=frame.args["start"];
local koniec=frame.args["koniec"];
local czy_start=parametry_modul.CzyTak(start);
local czy_koniec=parametry_modul.CzyTak(koniec);
local zaznacz=frame.args["zaznacz"];
local tabela_zaznacz={};
if(zaznacz)then
local iter=mw.text.gsplit(zaznacz,"%s*;%s*",false)
for liczba in iter do
tabela_zaznacz[#tabela_zaznacz+1]=tonumber(liczba) or 0;
end;
end;
local czy_rozne=parametry_modul.CzyTak(frame.args["różne"]);
local czy_ma_nazwane;
local function Wylicz_skoncz_na_koncu()
czy_ma_nazwane=parametry_modul["CzySąElementyNazwaneTablicy"](tabela);
if(czy_ma_nazwane)then
if(czy_rozne)then
local maks_numer=parametry_modul.CzyTak(frame.args["maksimum numeracyjne"]);
if(not maks_numer)then
return math.max(MaksymalnyLiczonyNumerElementowPodanychPodstawNazwyParametrow(),parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(pf.args));
else
return parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(pf.args);
end;
else
return MaksymalnyLiczonyNumerElementowPodanychPodstawNazwyParametrow();
end;
else
return parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(pf.args);
end;
end;
local skoncz_na_koncu_wyliczona=Wylicz_skoncz_na_koncu();
if(not czy_koniec)then
skoncz_na_koncu=skoncz_na_koncu_wyliczona;
else
skoncz_na_koncu=math.max(math.min(skoncz_na_koncu_wyliczona, tonumber(koniec) or 0),0);
end;
zacznij_na_poczatku=math.max(tonumber(start) or 1,1);
if(zacznij_na_poczatku==0)then return "(początek jest ustawiony na zero)";end;
for name, tab_par in pairs(tabela)do
local _4=tab_par[4];local _5=tab_par[5];
if(_4)then zacznij_na_poczatku=math.max(math.min(zacznij_na_poczatku,_4 or 1),1);end;
if(_5)then skoncz_na_koncu=math.max(math.max(skoncz_na_koncu,_5 or 0),0);end;
end;
local czy_niepodane=parametry_modul.CzyTak(frame.args["niepodane"]);
local czy_zero_element=false;
if(czy_niepodane)then
if(zacznij_na_poczatku>skoncz_na_koncu)then
skoncz_na_koncu=zacznij_na_poczatku;
czy_zero_element=true;
end;
end;
local lancuch_znakow="";
local gdy_nic=parametry_modul.CzyTak(frame.args["nic"])and frame.args["nic"] or "";
if(zacznij_na_poczatku>skoncz_na_koncu)then return gdy_nic;end;
local pokolei=parametry_modul.CzyTak(frame.args["po kolei"]);
local wytnij=parametry_modul.CzyTak(frame.args["wytnij"]);
local wytnij_puste=parametry_modul.CzyTak(frame.args["wytnij puste"]);
local nie_wytnij_nazwane=parametry_modul.CzyTak(frame.args["nie wytnij nazwane"]);
local _i=parametry_modul.CzyTak(frame.args["znacznik"])and frame.args["znacznik"] or "_";
local czy_parametry_ze_spacja_i_jedynka=function(nazwa_parametru)
local parametr_tab=tabela[nazwa_parametru];
if(parametr_tab)then
return (not parametr_tab[1]),parametr_tab[2];
end;
return true,false;
end;
if(not czy_rozne)then
if(czy_ma_nazwane)then
local function Analizuj_dla_bez_rozne(tabela_wszystkich_parametrow)
local tab_lancuch={};
local maksimum=0;
local minimum;
for licznik=zacznij_na_poczatku,skoncz_na_koncu,1 do
local lancuch=tekst_do_analizy;
local czy=nil;
local wytnij_ujemne;
for zmienne_parametrowe,_ in pairs(tabela_wszystkich_parametrow)do
if(zmienne_parametrowe)then
local subtab=tabela[zmienne_parametrowe];
local liczba_przesuniecia=subtab and subtab[3] or 0;
local liczba=licznik+liczba_przesuniecia+zacznij_nazwane;
----
if(liczba<1)then wytnij_ujemne=true;end;
if(liczba>0)then
local ze_spacja,czy_z_jedynka=czy_parametry_ze_spacja_i_jedynka(zmienne_parametrowe);
local element=pf.args[zmienne_parametrowe..((ze_spacja)and " " or "")..licznik];
local czy_jedynka=(licznik==1)and ((element and(not wytnij)) or((wytnij)and (parametry_modul.CzyTak(element))));
local wartosc_elementu=((czy_z_jedynka) and element or ((not czy_z_jedynka)and((licznik>1)and element or ((licznik==1)and(czy_jedynka and element or pf.args[zmienne_parametrowe])))));
czy=czy or (((wartosc_elementu) and ((not wytnij)and(not wytnij_puste)))
or ((wytnij)and (parametry_modul["CzyTakCiąg"](wartosc_elementu)))
or ((wytnij_puste and not wytnij)and (parametry_modul.CzyTak(wartosc_elementu))));
local tabelka_szablonow={
["{{".._i.."}}"]=licznik,
["{{".._i.._i.."}}"]=(czy_z_jedynka and licznik or ((licznik>1) and licznik or (czy_jedynka and 1 or ""))),
};
local function fun_tabelka_szablonow(ciag)
local ciag_strip=mw.ustring.gsub(ciag,"{{%s*(%S+)%s*}}","{{%1}}");
return tabelka_szablonow[ciag_strip] or ciag;
end;
lancuch=mw.ustring.gsub(lancuch,"{{%s*".._i.."+%s*}}",fun_tabelka_szablonow);
end;
end;
end;
if(not wytnij_ujemne)then
local czy_jest=parametry_modul.CzyJestTakiElementNumerowanyTabeli(tabela_zaznacz,licznik);
czy=czy or czy_zero_element;
if((pokolei and (not czy_jest)) or czy or ((not pokolei)and(czy_jest)))then
tab_lancuch[#tab_lancuch+1]=lancuch;
maksimum=math.max(maksimum,licznik);
minimum=math.min(minimum or licznik,licznik);
end;
end;
end
lancuch_znakow=BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);
end;
Analizuj_dla_bez_rozne(tabela);
else
local tab_lancuch={};
local maksimum=0;
local minimum;
for licznik=zacznij_na_poczatku,skoncz_na_koncu,1 do
local element=pf.args[licznik]
local czy=czy_zero_element
or (((element)and ((not wytnij)and(not wytnij_puste)))
or((wytnij)and(parametry_modul["CzyTakCiąg"](element)))
or((wytnij_puste and not wytnij)and(parametry_modul.CzyTak(element))));
local czy_jest=parametry_modul.CzyJestTakiElementNumerowanyTabeli(tabela_zaznacz,licznik);
if((pokolei and (not czy_jest)) or czy or ((not pokolei)and(czy_jest)))then
tab_lancuch[#tab_lancuch+1]=mw.ustring.gsub(tekst_do_analizy,"{{%s*".._i.."+%s*}}",licznik);
maksimum=math.max(maksimum,licznik);
minimum=math.min(minimum or licznik,licznik);
end;
end;
lancuch_znakow=BudowaSzereguZDanych(frame, tab_lancuch,minimum or 0,maksimum);
end;
else
local function Analizuj_z_rozne(tabela_wszystkich_parametrow)
local tab_lancuch={};
local maksimum=0;
local minimum;
for licznik=zacznij_na_poczatku,skoncz_na_koncu,1 do
local czy=false;
local czy_niepuste=false;
local wytnij_ujemne=false;
local function Analiza_zmiennej_parametrowej(zmienne_parametrowe,licznik,czy_ze_spacja,czy_z_jedynka)
local wartosc,klucz;
if(zmienne_parametrowe)then
local function Niewspomniane_w_rozne(zmienne_parametrowe,liczba_przesuniecia)
local liczba=licznik+liczba_przesuniecia+zacznij_nazwane;
if(liczba<1)then wytnij_ujemne=true;end;
if(liczba>0)then
local element=pf.args[zmienne_parametrowe..((czy_ze_spacja)and " " or "")..liczba];
local czy_jedynka=(liczba==1)and element;
local wartosc_elementu=((czy_z_jedynka) and element or ((not czy_z_jedynka)and((liczba>1)and element or ((liczba==1)and(czy_jedynka and element or pf.args[zmienne_parametrowe])))));
czy_niepuste=czy_niepuste
or ((not nie_wytnij_nazwane)and((wytnij and parametry_modul["CzyTakCiąg"](wartosc_elementu))
or (wytnij_puste and not wytnij and parametry_modul.CzyTak(wartosc_elementu))) or (nie_wytnij_nazwane and wartosc_elementu));
czy=czy or wartosc_elementu;
wartosc="{{{"..zmienne_parametrowe..(czy_z_jedynka and (((czy_ze_spacja)and " " or "")..liczba) or ((liczba>1) and (((czy_ze_spacja)and " " or "")..liczba) or (czy_jedynka and (((czy_ze_spacja)and " " or "")..1) or "")));
klucz="{{{%s*"..zmienne_parametrowe..((czy_ze_spacja)and "%s+" or "").."{{%s*".._i.._i.."+%s*}}";
end;
end;
local subtab=tabela[zmienne_parametrowe];
local liczba_przesuniecia=subtab and subtab[3] or 0;
Niewspomniane_w_rozne(zmienne_parametrowe,liczba_przesuniecia);
end;
return klucz,wartosc;
end;
local function Tekst_do_analizy(tekst_do_analizy_przetwarzany,klucz,wartosc)
if((wartosc)and(klucz))then
local przetwarzane,_=mw.ustring.gsub(tekst_do_analizy_przetwarzany,klucz,wartosc);
return przetwarzane;
end;
return "";
end;
local lancuch_zaanalizowany=tekst_do_analizy;
for zmienne_parametrowe,_ in pairs(tabela_wszystkich_parametrow)do
local lokalizacja=mw.ustring.match(tekst_do_analizy,"{{{%s*"..zmienne_parametrowe.."%s*{{%s*".._i.._i.."+%s*}}");
if(lokalizacja)then
zmienne_parametrowe=mw.text.trim(zmienne_parametrowe);
local czy_ze_spacja,czy_z_jedynka=czy_parametry_ze_spacja_i_jedynka(zmienne_parametrowe);
local klucz,wartosc=Analiza_zmiennej_parametrowej(zmienne_parametrowe,licznik,czy_ze_spacja,czy_z_jedynka);
if(wytnij_ujemne)then break;end;
lancuch_zaanalizowany=Tekst_do_analizy(lancuch_zaanalizowany,klucz,wartosc);
end;
end;
if(not wytnij_ujemne)then
local zmienna_numerowana_wikikodu=mw.ustring.match(tekst_do_analizy,"{{{%s*{{%s*".._i.."+%s*}}");
czy=czy_zero_element or czy or ((not zmienna_numerowana_wikikodu)and(mw.ustring.match(tekst_do_analizy,"{{%s*".._i.."%s*}}")))or((zmienna_numerowana_wikikodu)and(pf.args[licznik]));
local klucz="{{%s*".._i.."%s*}}";
local wartosc=licznik;
lancuch_zaanalizowany=Tekst_do_analizy(lancuch_zaanalizowany,klucz,wartosc);
czy_niepuste=czy_zero_element
or czy_niepuste
or (wytnij and parametry_modul["CzyTakCiąg"](pf.args[licznik]))
or (wytnij_puste and not wytnij and parametry_modul.CzyTak(pf.args[licznik]));
local czy_jest=parametry_modul.CzyJestTakiElementNumerowanyTabeli(tabela_zaznacz,licznik);
if((pokolei and (not czy_jest)) or (czy and (not wytnij)and(not wytnij_puste)) or (((wytnij)or(wytnij_puste))and(czy_niepuste)) or ((not pokolei)and(czy_jest)))then
tab_lancuch[#tab_lancuch+1]=lancuch_zaanalizowany;
maksimum=math.max(maksimum,licznik);
minimum=math.min(minimum or licznik,licznik);
end;
end;
end;
lancuch_znakow=BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);
end;
Analizuj_z_rozne(tabela);
end;
if(#lancuch_znakow==0)then return gdy_nic;end;
local przetworzony_wikikod=not parametry_modul.CzyTak(frame.args["nie rozwiń"]) and pf:preprocess(lancuch_znakow) or lancuch_znakow;
return przetworzony_wikikod;
end;
p.PowtarzajOdDo=function(frame)
local start=tonumber(frame.args["start"]);
local koniec=tonumber(frame.args["koniec"]);
local krok=tonumber(frame.args["krok"]) or 1;
local parametry_modul=require("Module:Parametry")
local lacznik=frame.args["łącznik"] or (parametry_modul.CzyTak(frame.args["nowa linia"]) and "\n" or "");
if((not start)or(not koniec))then return "";end;
if(krok==0)then return "";end;
if(((start>koniec)and(krok>0))or((start<koniec)and(krok<0)))then return "";end;
local kod=frame.args[1];
tabela_mikroszablonow={
["{{start}}"]=start,
["{{koniec}}"]=koniec,
["{{krok}}"]=krok,
}
kod=mw.ustring.gsub(kod,"{{[^{}]+}}",tabela_mikroszablonow);
local lancuch="";
local licznik=start;
local kodprzeskok=frame.args["przeskok"];
local pf=frame:getParent();
while licznik<=koniec do
local przeskok;
if(kodprzeskok)then
local _;
przeskok,_=mw.ustring.gsub(kodprzeskok,"{{_}}",licznik);
przeskok=pf:preprocess(przeskok);
end;
local kod2,_=mw.ustring.gsub(kod,"{{_}}",licznik);
lancuch=lancuch..((lancuch~="")and lacznik or "")..kod2;
licznik=licznik+krok+(tonumber(przeskok) or 0);
end;
local przetworzony_wikikod=not parametry_modul.CzyTak(frame.args["nie rozwiń"]) and pf:preprocess(lancuch) or lancuch;
return przetworzony_wikikod;
end;
p["PrzetwarzajIterującCiąg"]=function(frame)
local poziom=frame.args["ciąg"];
poziom=mw.text.trim(poziom);
local tab_poziom=mw.text.split(poziom,"%s*;%s*",false);
local len_tab_poziom=#tab_poziom;
local start=1;local koniec=len_tab_poziom;local krok=1;
tabela_mikroszablonow={
["{{start}}"]=start,
["{{koniec}}"]=koniec,
["{{krok}}"]=krok,
}
local parametry_modul=require("Module:Parametry");
local lacznik=frame.args["łącznik"] or (parametry_modul.CzyTak(frame.args["nowa linia"]) and "\n" or "");
local kod=frame.args[1];
kod=mw.ustring.gsub(kod,"{{[^{}]+}}",tabela_mikroszablonow);
local lancuch="";
local licznik=start;
local kodprzeskok=frame.args["przeskok"];
if(kodprzeskok)then
kodprzeskok=mw.ustring.gsub(kodprzeskok,"{{[^{}]+}}",tabela_mikroszablonow);
end;
local pf=frame:getParent();
while licznik<=koniec do
local przeskok;
local tabela_microszablonow2={
["{{_}}"]=licznik,
["{{ciąg}}"]=tab_poziom[licznik];
};
if(kodprzeskok)then
przeskok=mw.ustring.gsub(kodprzeskok,"{{[^{}]+}}",tabela_microszablonow2);
przeskok=pf:preprocess(przeskok);
end;
local kod2,_=mw.ustring.gsub(kod,"{{[^{}]+}}",tabela_microszablonow2);
lancuch=lancuch..((lancuch~="")and lacznik or "")..kod2;
licznik=licznik+krok+(tonumber(przeskok) or 0);
end;
local przetworzony_wikikod=not parametry_modul.CzyTak(frame.args["nie rozwiń"]) and pf:preprocess(lancuch) or lancuch;
return przetworzony_wikikod;
end;
p["PowtarzajWedług"] = function(frame)
local start=tonumber(frame.args["start"]) or 1;
local wybrany_wzor=frame.args["wzór"];
local parametry_modul=require("Module:Parametry")
local czy_link=parametry_modul.CzyTak(frame.args["link"]);
local liczba_list=p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]{args={["wzór"]=wybrany_wzor,}};
local lancuch="";
local linki_modul=require("Module:S");
for i=start,liczba_list,1 do
local wybrany_link_lub_bez;
local wybrany_link_lub_bez=mw.ustring.gsub(wybrany_wzor,"{{_}}",tostring(i));
if czy_link then
wybrany_link_lub_bez=linki_modul["S"]{[1]=wybrany_link_lub_bez};
end;
lancuch=(lancuch~="")and (lancuch..((i<liczba_list) and ", " or " i ")..wybrany_link_lub_bez) or wybrany_link_lub_bez;
end;
return lancuch;
end;
p["LiczbaPrawychUkośników"] = function(frame)
local nazwa=frame.args[1];
local _,ile=mw.ustring.gsub(nazwa,"/",function(s)return nil;end);
return ile;
end;
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)
local start=tonumber(frame.args["start"]) or 1;
licznik=start;
local strona=frame.args["wzór"];
while true do
local strona2,_=mw.ustring.gsub(strona,"{{_}}",licznik);
local title=mw.title.makeTitle('',strona2);
if((not title) or (not title.exists))then
return licznik-1;
end;
licznik=licznik+1;
end;
end;
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local pf=frame:getParent();
local parametr=frame.args["zmienna"];
local odpowiednik=frame.args["odpowiednik"];
parametr=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](parametr);
local czy_odpowiednik=parametry_modul.CzyTak(odpowiednik);
local numer=nil;
for name,value in pairs(pf.args)do
local __name=tostring(name);
local __numer=mw.ustring.match(__name,"^"..parametr.."(%d*)$");
__numer=tonumber(__numer) or (((__numer)and(__numer=="")) and 1 or nil);
if((__numer)or((czy_odpowiednik)and(parametry_modul.TypeNumber(name))))then
if(numer)then
numer=math.min(__numer or name,numer);
else
numer=__numer or name;
end;
end;
end;
return numer;
end;
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local pf=frame:getParent();
local parametr=frame.args["zmienna"];
local odpowiednik=frame.args["odpowiednik"];
parametr=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](parametr);
local czy_odpowiednik=parametry_modul.CzyTak(odpowiednik);
local numer=0;
local tab={};
for name,value in pairs(pf.args)do
local __name=tostring(name);
local __numer=mw.ustring.match(__name,"^"..parametr.."(%d*)$");
if((not tab[name])and((__numer)or((czy_odpowiednik)and(parametry_modul.TypeNumber(name)))))then
numer=numer+1;
tab[tonumber(__numer) or(((__numer)and(__numer==""))and 1 or nil) or name]=true;
end;
end;
return numer;
end;
p["Parametr w tablicy nazw"]=function(frame)
local zmienna_z_argumentami=frame.args["parametry"];
if(not zmienna_z_argumentami)then return;end;
local jedna_pozycja=frame.args["pozycja"];
if(not jedna_pozycja)then return;end;
local parametry_modul=require("Module:Parametry");
jedna_pozycja=parametry_modul["Odstępy"]{[1]=jedna_pozycja,[2]="tak"};
if(jedna_pozycja=="")then return;end;
local od_duzej=parametry_modul.CzyTak(frame.args["od dużej"]);
jedna_pozycja=od_duzej and mw.getContentLanguage():ucfirst(jedna_pozycja) or jedna_pozycja;
local iter=mw.text.gsplit(zmienna_z_argumentami,";",true);
local tablica={};
for pozycja in iter do
pozycja=parametry_modul["Odstępy"]{[1]=pozycja,[2]="tak"};
if(pozycja~="")then
tablica[od_duzej and mw.getContentLanguage():ucfirst(pozycja) or pozycja]=true;
end;
end;
return (tablica[jedna_pozycja] and "tak" or nil);
end;
return p;
lntenynng0u309swcxd7j7markfqd7f
Moduł:Kategorie
828
45670
551362
544873
2026-08-11T14:25:13Z
Persino
2851
551362
Scribunto
text/plain
local p={};
local function PoliczLiczbeStronWPodkategoriach(z_kategoriami_bledow,parametry_modul,argumenty_szablonu,zebrane_kategorie,bledy,czy_korzystana_kategoria)
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local szablonowe_modul=require("Module:Szablonowe");
local specjalne_modul=require("Module:Specjalne");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local liczba_stron_w_kategoriach=0;
for numer_argumentu_szablonu, nazwa_kategorii in ipairs(argumenty_szablonu) do
if(numer_argumentu_szablonu~=0)then
local nazwa_kategorii_naprawiona=parametry_modul["Odstępy"]{[1]=nazwa_kategorii,[2]="tak",};
local liczba_stron_istniejacych,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=Category..":"..nazwa_kategorii_naprawiona,tekst=true,};
if(liczba_stron_istniejacych==0)then
if(z_kategoriami_bledow)then
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - nieistniejące kategorie");
else
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - niepoprawne kategorie");
end;
end;
else
local zawartosc_strony=tabela_uchwytow_stron[1][2];
zawartosc_strony=specjalne_modul["UsuńKomentarze"](zawartosc_strony);
local tablica_obiektow_strony_dany_modul={};
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(zawartosc_strony,nil,tablica_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local nazwa_szablonu,tabela_modyfikatorow,czy_z_parametrami=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if(szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then
if(nazwa_szablonu=="Łączna liczba stron w kategoriach")then
local niepowtarzajace_sie_kategorie=true;
if(zebrane_kategorie[nazwa_kategorii_naprawiona])then
if(z_kategoriami_bledow)then
if(not czy_korzystana_kategoria)then
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się kategorie");
else
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się parametry");
end;
end;
niepowtarzajace_sie_kategorie=false;
end;
if(niepowtarzajace_sie_kategorie)then
zebrane_kategorie[nazwa_kategorii_naprawiona]=true;
local tablica_argumentow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon);
local liczba_stron_w_kategorii=0;
for licznik,elementy_nieponumerowane_argumentow_szablonu in pairs(tablica_argumentow_szablonu)do
if((type(licznik)=="number")and(licznik>0))then
local elementy_nieponumerowane_argumentow_szablonu2=parametry_modul["Odstępy"]{[1]=elementy_nieponumerowane_argumentow_szablonu,[2]="tak",};
liczba_stron_w_kategorii=liczba_stron_w_kategorii+mw.site.stats.pagesInCategory(elementy_nieponumerowane_argumentow_szablonu2,"all");
end;
end;
liczba_stron_w_kategoriach=liczba_stron_w_kategoriach+liczba_stron_w_kategorii;
end;
elseif(nazwa_szablonu=="Rekurencyjna łączna liczba stron w kategoriach")then
local tablica_argumentow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon);
for licznik,wartosc_argumentu in pairs(tablica_argumentow_szablonu) do
wartosc_argumentu=parametry_modul["Odstępy"]{[1]=wartosc_argumentu,[2]="tak",};
if((type(licznik)=="number")and(wartosc_argumentu~=""))then
tablica_argumentow_szablonu[licznik]=wartosc_argumentu
end;
end;
local niepowtarzajace_sie_kategorie=true
if(zebrane_kategorie[nazwa_kategorii_naprawiona])then
if(z_kategoriami_bledow)then
if(not czy_korzystana_kategoria)then
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się kategorie");
else
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się parametry");
end;
end;
niepowtarzajace_sie_kategorie=false;
end;
zebrane_kategorie[nazwa_kategorii_naprawiona]=true;
if(niepowtarzajace_sie_kategorie)then
liczba_stron_w_kategoriach=liczba_stron_w_kategoriach+PoliczLiczbeStronWPodkategoriach(z_kategoriami_bledow,parametry_modul,tablica_argumentow_szablonu,zebrane_kategorie,bledy,false);
end;
end;
end;
end;
end);
end;
end;
end;
return liczba_stron_w_kategoriach;
end;
p["Rekurencyjna łączna liczba stron w kategoriach"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local bledy={};
local nazwy_modul=require("Module:Nazwy");
local nazwa_kategorii=(args["aktualna kategoria"])and (Category..':'..args["aktualna kategoria"]) or nil;
local tabela_nazw={};
local nazwa_strony_aktualnej=nazwy_modul["NAZWASTRONY"](nazwa_kategorii,tabela_nazw);
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_kategorii,tabela_nazw);
local zebrane_kategorie={};
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
zebrane_kategorie[nazwa_strony_aktualnej]=true;
end;
local Category=nazwy_np_modul.Category;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local liczba_argumentow_ponumerowanych_w_argumentach_szablonu=parametry_modul["MaksymalnaLiczbaParametruNienazwanegoTablicy"](args,"tak");
if(liczba_argumentow_ponumerowanych_w_argumentach_szablonu==0)then
if(z_kategoriami_bledow)then
local tab_parametrow={};
tab_parametrow[1]="Szablon rekurencyjna łączna liczba stron w kategoriach - brak kategorii";
local str_kategoria=p.Kategoria{args=tab_parametrow,};
return "0"..str_kategoria;
else
return "0";
end;
end;
for licznik,wartosc_argumentu in pairs(args) do
local wartosc_argumentu=parametry_modul["Odstępy"]{[1]=wartosc_argumentu,[2]="tak",};
if((type(licznik)=="number")and(wartosc_argumentu~=""))then
args[licznik]=wartosc_argumentu;
end;
end;
local liczba_stron_w_kategoriach=PoliczLiczbeStronWPodkategoriach(z_kategoriami_bledow,parametry_modul,args,zebrane_kategorie,bledy,true);
if((z_kategoriami_bledow)and(not parametry_modul["CzySąElementyNienazwaneTablicy"](bledy,"tak")))then
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
local args2=parametry_modul["KopiujTabelęŁańcuchów"]{tabela=args,["przedrostek wszystko"]='Category:'};
local techniczne_modul=require("Module:Techniczne");
args2["tekst"]=true;
local liczba_istniejacych_kategorii_w_aktualnej_kategorii,_=techniczne_modul.PoliczZbiory(args2);
if(liczba_argumentow_ponumerowanych_w_argumentach_szablonu~=mw.site.stats.pagesInCategory(nazwa_strony_aktualnej,"subcats")
or(liczba_argumentow_ponumerowanych_w_argumentach_szablonu~=liczba_istniejacych_kategorii_w_aktualnej_kategorii)
)then
parametry_modul.DodajElementDoZbioru(bledy,"Szablon rekurencyjna łączna liczba stron w kategoriach - niezgodność kategorii");
end;
end;
end;
local str_kategorie;
if(parametry_modul["CzySąElementyNumerowaneTablicy"](bledy))then
str_kategorie=p.Kategorie{args=bledy}
else
str_kategorie="";
end;
return liczba_stron_w_kategoriach..str_kategorie;
end;
p["Łączna liczba stron w kategoriach"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local czy_szablon_z_parametrami=true;
if(#args==0)then
local nazwy_modul=require("Module:Nazwy");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local tabela_nazw={};
local nazwa_przestrzeni=nazwy_modul.NAZWAPRZESTRZENI(nil,tabela_nazw);
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
args={[1]=nazwy_modul.NAZWASTRONY(nil,tabela_nazw);};
czy_szablon_z_parametrami=false;
end;
end;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local liczba_argumentow_ponumerowanych_w_argumentach_szablonu=parametry_modul["MaksymalnaLiczbaParametruNienazwanegoTablicy"](args,"tak");
if(liczba_argumentow_ponumerowanych_w_argumentach_szablonu==0)then
if(z_kategoriami_bledow)then
local tab_parametrow={};
tab_parametrow[1]="Szablon łączna liczba stron w kategoriach - brak kategorii";
local str_kategoria=p.Kategoria{args=tab_parametrow,};
return "0"..str_kategoria;
else
return "0";
end;
end;
local tabela_kategorii={};
for licznik=1,liczba_argumentow_ponumerowanych_w_argumentach_szablonu,1 do args[licznik]=parametry_modul["Odstępy"]{[1]=args[licznik],[2]="tak",};end;
local liczba_stron_w_kategorii=0;
local liczba_kategorii_w_korzystanej_kategorii=0;
local czy_ma_liczyc_zgodnosc_kategorii=true;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local techniczne_modul=require("Module:Techniczne");
for licznik,wartosc_argumentu in pairs(args)do
if((type(licznik)=="number")and(mw.text.trim(wartosc_argumentu)~=""))then
local liczba_istniejacych_kategorii,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]="Category:"..args[licznik],tekst=true,};
if(liczba_istniejacych_kategorii==0)then
if(z_kategoriami_bledow)then
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"Szablon łączna liczba stron w kategoriach - nieistniejące kategorie");
else
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"Szablon łączna liczba stron w kategoriach - niepoprawne kategorie");
end;
end;
czy_ma_liczyc_zgodnosc_kategorii=false;
else
local czy_niepowtarzajace_kategorie=true;
for licznik2=licznik+1,liczba_argumentow_ponumerowanych_w_argumentach_szablonu,1 do
if(args[licznik]==args[licznik2])then
if(z_kategoriami_bledow)then
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"Szablon łączna liczba stron w kategoriach - powtarzające się parametry");
end;
czy_niepowtarzajace_kategorie=false;
czy_ma_liczyc_zgodnosc_kategorii=false;
break;
end;
end;
if(czy_niepowtarzajace_kategorie)then
liczba_kategorii_w_korzystanej_kategorii=liczba_kategorii_w_korzystanej_kategorii+1;
liczba_stron_w_kategorii=liczba_stron_w_kategorii+mw.site.stats.pagesInCategory(args[licznik],"all");
end;
end;
end;
end;
if(z_kategoriami_bledow)then
if((czy_ma_liczyc_zgodnosc_kategorii)and(czy_szablon_z_parametrami))then
local nazwy_modul=require("Module:Nazwy");
local nazwa_kategorii=(args["aktualna kategoria"])and ('Category:'..args["aktualna kategoria"]) or nil;
local tabela_nazw={};
local nazwa_strony_aktualnej=nazwy_modul["NAZWASTRONY"](nazwa_kategorii,tabela_nazw);
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_kategorii,tabela_nazw);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
local liczba_kategorii_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony_aktualnej,"subcats")+(((args["kategoria alternatywna jako podkategoria"])and(args["kategoria alternatywna jako podkategoria"]~="")) and -1 or 0);
local liczba_kategorii_w_kategorii_alternatywnej=0;
if(args["kategoria alternatywna"])then
local iter=mw.text.gsplit(args["kategoria alternatywna"], "|", true );
for kategoria in iter do
liczba_kategorii_w_kategorii_alternatywnej=liczba_kategorii_w_kategorii_alternatywnej+mw.site.stats.pagesInCategory(mw.text.trim(kategoria),"subcats");
end;
end;
if(liczba_kategorii_w_korzystanej_kategorii~=liczba_kategorii_w_kategorii_aktualnej+liczba_kategorii_w_kategorii_alternatywnej)then
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"Szablon łączna liczba stron w kategoriach - niezgodność kategorii");
end;
end;
end;
end;
local str_kategorie;
if(parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_kategorii))then
str_kategorie=p.Kategorie{args=tabela_kategorii,};
else
str_kategorie="";
end;
return liczba_stron_w_kategorii..str_kategorie;
end;
function p.DomniemanaNazwaSortowaniaStrony(frame)
return p:DomniemanaNazwaSortowania(frame);
end;
function p.DomniemanaNazwaSortowania(self,frame)
local pf=frame.getParent and frame:getParent() or frame;
if(pf.args["nazwa przestrzeni nazw"] or pf.args["nazwa jednostki"])then
return p.DomniemanaNazwaSortowaniaBezParametrowychJednostkowych(self,frame);
end;
local kategorie_nazwa_sortowania_modul=mw.loadData('Module:Kategorie/nazwa sortowania');
return kategorie_nazwa_sortowania_modul.domniemana_nazwa_sortowania;
end;
function p.DomniemanaNazwaSortowaniaBezParametrowychJednostkowych(self,frame)
if(self.nazwa_sortowania)then return self.nazwa_sortowania;end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_sortowania=pudelko_modul["Nazwa jednostki 2"](frame);
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local category=nazwy_np_modul.Category;
local ile_ksiazka=0;
if(nazwa_przestrzeni_nazw==category)then nazwa_sortowania,ile_ksiazka=mw.ustring.gsub(nazwa_sortowania,"^Książka:","");end;
local koncowka=mw.ustring.match(nazwa_sortowania,"%.([^/%.]+)$");
local inne_niz_mediawiki=((nazwa_przestrzeni_nazw==nazwy_np_modul.Template)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Module));
local czy_bez_prawego_ukosnika=false;
if((inne_niz_mediawiki)or(nazwa_przestrzeni_nazw==nazwy_np_modul.MediaWiki))then
if(inne_niz_mediawiki)then
nazwa_sortowania,ile_ksiazka=mw.ustring.gsub(nazwa_sortowania,"^Książka:","");
end;
local koncowka=mw.ustring.match(nazwa_sortowania,"%.([^/%.%s]+)$");
if(koncowka)then
koncowka=mw.ustring.lower(koncowka);
if((koncowka=="css")or((not inne_niz_mediawiki)and(koncowka=="js")))then
if(mw.ustring.match(nazwa_sortowania,"/"))then
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"(/[^/]*%.[^/%.%s]+)$","");
else
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"(.)(%.[^/%.%s]+)$","%1");
end;
end;
else
local core=mw.ustring.match(nazwa_sortowania,"/(core)$")
or mw.ustring.match(nazwa_sortowania,"/(silnik)$");
if(core)then
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"/"..core.."$","");
end;
end;
else
local core=mw.ustring.match(nazwa_sortowania,"/(Wersja do druku)$")
or mw.ustring.match(nazwa_sortowania,"/(Do druku)$");
if(core)then
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"/"..core.."$","");
else
local okladka=mw.ustring.match(nazwa_sortowania,"/[Oo][Kk][LlŁł][Aa][Dd][Kk][Aa]$")
if(okladka)then
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"/[^/]+$","");
end;
end;
end;
if((nazwa_przestrzeni_nazw~=nazwy_np_modul.Main)and(nazwa_przestrzeni_nazw~=nazwy_np_modul.Wikijunior))then
if(ile_ksiazka==0)then
local kategorie_sortowanie_modul=require("Module:Kategorie/sortowanie");
nazwa_sortowania,czy_bez_prawego_ukosnika=kategorie_sortowanie_modul.NazwaSortowaniaNazwyStrony(nazwa_sortowania);
else
czy_bez_prawego_ukosnika=not mw.ustring.match(nazwa_sortowania,"/");
if(czy_bez_prawego_ukosnika)then
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
nazwa_sortowania=nazwy_modul.NAZWASTRONY(nazwa_sortowania,tabela_nazw);
end;
end;
end;
if(not czy_bez_prawego_ukosnika)then
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"[/%s_]+$","");
nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^.*/([^/]+)$","%1");
end;
self.nazwa_sortowania=nazwa_sortowania;
return nazwa_sortowania;
end;
function p.CzyKategoriaDlaKategorii(frame)
local pudelko_modul=require("Module:Pudełko");
local nazwa_przestrzeni=pudelko_modul["Nazwa przestrzeni nazw 2"](frame);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
local nazwa_strony=pudelko_modul["Nazwa jednostki 2"](frame);
local kategorie_dla_kategorii="Kategorie dla kategorii";
if(nazwa_strony==kategorie_dla_kategorii)then return nil;end;
local techniczne_modul=require("Module:Techniczne");
local liczba_stron_istniejacych,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]="Category:"..kategorie_dla_kategorii,tekst=true,};
if(liczba_stron_istniejacych==0)then return nil;end;
local liczba_stron_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony,"pages");
local liczba_podkategorii_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony,"subcats");
local liczba_plikow_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony,"files");
if((liczba_stron_w_kategorii_aktualnej>0)or (liczba_plikow_w_kategorii_aktualnej>0)or(liczba_podkategorii_w_kategorii_aktualnej==0))then return nil;end;
return "tak";
end;
return nil;
end;
function p.KategoriaDlaKategorii(frame)
local czy_kategoria_dla_kategorii=p.CzyKategoriaDlaKategorii(frame)
if(czy_kategoria_dla_kategorii)then
local nazwa_sortowania=p:DomniemanaNazwaSortowania(frame);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
return "[["..Category..":Kategorie dla kategorii|"..nazwa_sortowania.."]]";
end;
return "";
end;
function p.Kategoria(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local kategoria2=args[1] and parametry_modul["Odstępy"]{[1]=args[1],[2]="tak",};
local kategoria=parametry_modul.CzyTak(kategoria2) and mw.getContentLanguage():ucfirst(kategoria2) or nil;
local nazwa_sortowania=args[2] and parametry_modul["Odstępy"]{[1]=args[2],[2]="tak",};
local czy_nazwa_sortowania_aut=parametry_modul.CzyTak(args["nie sortuj nazwą"] or args["n"]);
local czy_nie_kategorie_dla_kategorii=parametry_modul.CzyTak(args["nie kategorie dla kategorii"] or args["nk"]);
local kategorie_dla_kategorii="Kategorie dla kategorii";
local function DodawanieKategorii()
local sortuj=args["sortuj spacją"] or args["s"];
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_stron,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=Category..":"..kategoria,tekst=true,};
local dotatkowekategorie="";
local nazwa_sortowania_aut;
if(z_kategoriami_bledow)then
if(liczba_istniejacych_stron==0)then
nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
if(tabela_uchwytow_stron[1][1])then
dotatkowekategorie="[["..Category..":Szablon kategoria - nieistniejąca kategoria|"..nazwa_sortowania_aut.."]]";
else
dotatkowekategorie="[["..Category..":Szablon kategoria - niepoprawna kategoria|"..nazwa_sortowania_aut.."]]";
end;
end;
end;
if(parametry_modul.CzyTak(nazwa_sortowania))then
return ((tabela_uchwytow_stron[1][1])and "[["..Category..":"..kategoria..((not czy_nazwa_sortowania_aut) and ("|"..((parametry_modul.CzyTak(sortuj))and " " or nazwa_sortowania)) or "").."]]" or "")..dotatkowekategorie..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
else
if(parametry_modul.CzyTak(sortuj))then
return ((tabela_uchwytow_stron[1][1])and "[["..Category..":"..kategoria.."| ]]" or "")..dotatkowekategorie..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
else
nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
return ((tabela_uchwytow_stron[1][1])and "[["..Category..":"..kategoria..(((not czy_nazwa_sortowania_aut) and (not nazwa_sortowania)) and ("|"..nazwa_sortowania_aut) or "").."]]" or "")..dotatkowekategorie..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
end;
end;
end;
if(parametry_modul.CzyTak(kategoria))then
return DodawanieKategorii();
end;
local title=mw.title.getCurrentTitle();
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np")
local category=nazwy_np_modul.Category;
if(title.nsText==category)then nazwa_sortowania,_=mw.ustring.gsub(title.text,"^Książka:(.*)$","%1");else nazwa_sortowania=title.text;end;
--nazwa_sortowania,_=mw.ustring.gsub(nazwa_sortowania,"^.*/([^/]+)$","%1");
local nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
return "[["..Category..":Szablon kategoria - nazwa kategorii pusta lub niepodana|"..nazwa_sortowania_aut.."]]"..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
end;
function p.Kategorie(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local tablica_kategorii_bledow={};
local tablica_kategorii={};
local tablica_czy_kategorie_sie_powtarzaja={};
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local czy_sa_argumenty_ponumerowane=parametry_modul["CzySąElementyNienazwaneTablicy"](args);
if(not czy_sa_argumenty_ponumerowane)then
if(z_kategoriami_bledow)then
local nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
return "[["..Category..":Szablon kategorie - nie podano nazw kategorii|"..nazwa_sortowania_aut.."]]"..(czy_nie_kategorie_dla_kategorii and "" or p.KategoriaDlaKategorii(frame));
else
return (czy_nie_kategorie_dla_kategorii and "" or p.KategoriaDlaKategorii(frame));
end;
end;
local klucz_sortowania=args["klucz sortowania"] or args["k"];
local czy_klucz_sortowania=parametry_modul.CzyTak(klucz_sortowania);
local czy_nie_kategorie_dla_kategorii=parametry_modul.CzyTak(args["nie kategorie dla kategorii"] or args["nk"]);
local kategorie_dla_kategorii="Kategorie dla kategorii";
local techniczne_modul=require("Module:Techniczne");
local nazwa_sortowania_aut;
for licznik,wartosc_argumentu in pairs(args)do
if(type(licznik)=="number")then
local kategoria=wartosc_argumentu and parametry_modul["Odstępy"]{[1]=wartosc_argumentu,[2]="tak",};
if((kategoria)and(kategoria~=""))then
local _i=args["_"..licznik] or args["_i"];
local nazwa_sortowania=_i and parametry_modul["Odstępy"]{[1]=_i,[2]="tak",};
local sortuj=(not czy_klucz_sortowania) and (parametry_modul.CzyTak(args["sortuj spacją "..licznik] or args["s"..licznik] or args["sortuj spacją"] or args["s"])) or nil;
local czy_nazwa_sortowania_aut=parametry_modul.CzyTak(args["nie sortuj nazwą "..licznik] or args["n"..licznik] or args["nie sortuj nazwą"] or args["n"]);
local function DodawanieKategorii()
local liczba_istniejacych_stron,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=Category..":"..kategoria,tekst=true,};
if(z_kategoriami_bledow)then
if(liczba_istniejacych_stron==0)then
nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - nieistniejące kategorie|"..nazwa_sortowania_aut.."]]");
else
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - niepoprawne kategorie|"..nazwa_sortowania_aut.."]]");
end;
end;
end;
local czy_sie_nie_powtarza=true;
kategoria=mw.getContentLanguage():ucfirst(kategoria);
if(tablica_czy_kategorie_sie_powtarzaja[kategoria])then
if(z_kategoriami_bledow)then
nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - powtarzające się kategorie|"..nazwa_sortowania_aut.."]]");
end;
czy_sie_nie_powtarza=false;
end;
if((czy_sie_nie_powtarza)and (tabela_uchwytow_stron[1][1]))then
if(parametry_modul.CzyTak(nazwa_sortowania))then
tablica_kategorii[#tablica_kategorii+1]="[["..Category..":"..kategoria..((not czy_klucz_sortowania)and("|"..((parametry_modul.CzyTak(sortuj))and " " or nazwa_sortowania)) or "").."]]";
else
if(parametry_modul.CzyTak(sortuj))then
tablica_kategorii[#tablica_kategorii+1]="[["..Category..":"..kategoria.."| ]]";
else
nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
tablica_kategorii[#tablica_kategorii+1]="[["..Category..":"..kategoria..(((not czy_nazwa_sortowania_aut) and (not czy_klucz_sortowania)) and ("|"..nazwa_sortowania_aut) or "").."]]";
end;
end;
end;
tablica_czy_kategorie_sie_powtarzaja[kategoria]=true;
end;
DodawanieKategorii();
elseif((kategoria)and(kategoria==""))then
nazwa_sortowania_aut=p:DomniemanaNazwaSortowania(frame);
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - puste kategorie|"..nazwa_sortowania_aut.."]]");
end;
end;
end;
local lancuch_kategorii=table.concat(tablica_kategorii,"")..table.concat(tablica_kategorii_bledow);
if(lancuch_kategorii~="")then
if(czy_klucz_sortowania)then
klucz_sortowania=parametry_modul["Odstępy"]{[1]=klucz_sortowania,[2]="tak",};
local m=parametry_modul.PobierzFrameEwentualnieParent(frame);
lancuch_kategorii=m:callParserFunction("DEFAULTSORT",klucz_sortowania)..lancuch_kategorii;
end;
end;
return lancuch_kategorii..((czy_nie_kategorie_dla_kategorii or (tablica_czy_kategorie_sie_powtarzaja[kategorie_dla_kategorii])) and "" or p.KategoriaDlaKategorii(frame));
end;
p["SzablonyDodająceKategorie"]=function()
return "Szablony dodające kategorie";
end;
function p.OpakujKategorie(frame)
local pf=frame:getParent();
local wikikod=frame.args[1] or pf.args[1];
local _;
wikikod,_=mw.ustring.gsub(wikikod,"__NOINDEX__","")
local bez_kategorii=frame.args["bez kategorii wikikodu"] or pf.args["bez kategorii wikikodu"];
local z_nazwa_sortowania=frame.args["z nazwą sortowania"] or pf.args["z nazwą sortowania"];
local category;
local tablica_category={};
local iterator=mw.ustring.gmatch(wikikod,"(%[%[%s*([^%[%]%|:%s]+)%s*:%s*[^%[%]]+%s*%]%])")
local parametry_modul=require("Module:Parametry");
local function NazwaStronyKategorii(category)
local NieprzetworzonaNazwaStronyKategorii=function(category)
local nazwa=mw.ustring.match(category,"^%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|]*)")
if(nazwa)then return nazwa;end;
nazwa=mw.ustring.match(category,"^%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*([^|]*)");
return nazwa;
end;
local nazwa=NieprzetworzonaNazwaStronyKategorii(category);
if(nazwa)then
return parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak",};
end;
return nil;
end;
local sprawdz_modul=require("Module:Sprawdź");
local nazwa_sprawdzania_parametrow_szablonu=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]();
local specjalne_modul=require("Module:Specjalne");
local nazwa_szablonow_dodajace_kategorie=p["SzablonyDodająceKategorie"]();
local tab_innych_kategorii={
[nazwa_sprawdzania_parametrow_szablonu]=true,
[nazwa_szablonow_dodajace_kategorie]=true,
}
local function TablicaKategoriiSzablonu(iterator)
for category,przestrzen_kategorii in iterator do
przestrzen_kategorii=mw.ustring.lower(przestrzen_kategorii);
if((przestrzen_kategorii=="category")or(przestrzen_kategorii=="kategoria"))then
local nazwa=NazwaStronyKategorii(category);
if((nazwa)and(not tab_innych_kategorii[nazwa]))then
table.insert(tablica_category,category);
end;
end;
end;
end;
TablicaKategoriiSzablonu(iterator);
local parametry_modul=require("Module:Parametry");
if(not parametry_modul["CzySąElementyTablicy"](tablica_category))then return wikikod;end;
wikikod=mw.ustring.gsub(wikikod,"(%[%[%s*[^%[%]]+%s*%]%])",function(kategoria)
for _,name in pairs(tablica_category) do
if(name==kategoria)then
return "";
end;
end;
end);
if(parametry_modul.CzyTak(bez_kategorii))then return wikikod;end;
local czy_z_nazwa_sortowania=parametry_modul.CzyTak(z_nazwa_sortowania);
local ulramka=mw.html.create('ul');
ulramka:addClass('okul');
local pionowa=false;
local kategorie_istnieja=frame.args["kategorie istnieją"] or pf.args["kategorie istnieją"];
local czy_kategorie_istnieja=parametry_modul.CzyTak(kategorie_istnieja);
local parametry_modul=require("Module:Parametry")
local function Nazwa(nazwa)
local kategoria_istnieje=mw.ustring.match(nazwa,"%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*([^|%[%]]+)%s*%]%]");
if(kategoria_istnieje)then
return kategoria_istnieje;
end;
kategoria_istnieje=mw.ustring.match(nazwa,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]")
return kategoria_istnieje;
end;
local function NazwaSort(nazwa)
local kategoria_istnieje,nazwa_sortowania_kategorii_istniejacej=mw.ustring.match(nazwa,"%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]*)%s*%]%]");
if(kategoria_istnieje)then
return kategoria_istnieje,nazwa_sortowania_kategorii_istniejacej;
end;
local kategoria_istnieje,nazwa_sortowania_kategorii_istniejacej=mw.ustring.match(nazwa,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]*)%s*%]%]");
return kategoria_istnieje,nazwa_sortowania_kategorii_istniejacej;
end;
local function tag(nazwa)
local nazwa=mw.ustring.gsub(nazwa,"<%s*/?[^<>]->","");
return nazwa;
end;
local i=1;
for _,nazwa in ipairs(tablica_category)do
local nazwa2;
local kategoria_istnieje=Nazwa(nazwa);
if(kategoria_istnieje)then
nazwa2="[[:Category:"..kategoria_istnieje.."|"..kategoria_istnieje.."]]";
else
local nazwa_sortowania_kategorii_istniejacej;
kategoria_istnieje,nazwa_sortowania_kategorii_istniejacej=NazwaSort(nazwa);
if(kategoria_istnieje)then
nazwa_sortowania_kategorii_istniejacej,_=tag(nazwa_sortowania_kategorii_istniejacej)
nazwa2="[[:Category:"..kategoria_istnieje.."|"..kategoria_istnieje.."]]"..((czy_z_nazwa_sortowania)and ("<sup title=\""..nazwa_sortowania_kategorii_istniejacej.."\">["..i.."]</sup>") or "");
i=i+1;
end;
end;
if((kategoria_istnieje)and((not czy_kategorie_istnieja)or((czy_kategorie_istnieja)and((kategoria_istnieje~="Szablon kategoria - nieistniejąca kategoria")and(kategoria_istnieje~="Szablon kategorie - nieistniejące kategorie"))))
)then
nazwa2=parametry_modul["Odstępy"]{[1]=nazwa2,[2]="tak",};
local liramka=mw.html.create('li');
liramka:addClass('okli');
if(pionowa)then
liramka:addClass('oklilo');
pionowa=true;
else
pionowa=true;
end;
liramka:wikitext(nazwa2);
ulramka:node(liramka);
end;
end;
local kategorie="[[Specjalna:Kategorie|Kategorie]]:"
local divramka=mw.html.create('div');
divramka:addClass('oks');
divramka:wikitext(kategorie);
divramka:node(ulramka);
local divcalosc=mw.html.create('div');
divcalosc:addClass('ocwkzks');
local divwikikod=mw.html.create('div');
divwikikod:addClass('obkwk');
divwikikod:wikitext(parametry_modul["CzyTakCiąg"](wikikod) and (wikikod) or "");
divcalosc:node(divwikikod);
divcalosc:node(divramka)
return tostring(divcalosc:allDone());
end;
return p;
kyywydjfubma0sx8url49vdpwn6yu9s
Moduł:S
828
46769
551365
546608
2026-08-11T14:30:00Z
Persino
2851
551365
Scribunto
text/plain
local OpakowanieLinkoweNowiki=function(pole)
local strony_modul=require('Module:Strony');
local frame=mw.getCurrentFrame();
pole=mw.ustring.gsub(pole,"(%a+://%S+)",function(adres)
local czy_url=strony_modul.SprawdzanieURL(adres);
if(czy_url)then
local adres="<nowiki>"..adres.."</nowiki>";
adres=frame:preprocess(adres);
return adres;
end;
end);
return pole;
end;
local function StworzSymboliczneWywolanieWedlugZebranychDanych(args, link)
local html_modul=require("Module:Html");
local wywolanie="{{"..link;
for name,value in ipairs(args)do
if(name~=1)then
value=OpakowanieLinkoweNowiki(value);
value=html_modul.PrzypisanieZnakoweEncodeHtml(value);
value=mw.ustring.gsub(value,"^!","!");
value=mw.ustring.gsub(value,"\n!","\n!");
value=html_modul.EncodeZnakProloguList(value);
wywolanie=wywolanie.."|"..value;
end;
end;
local wywolanie=wywolanie.."}}";
return wywolanie;
end;
local function SformatowanaNazwaStronySzablonuSymbolicznegoWywolania(nazwa_stara,nazwa_nowa,nazwa_oryginalna,odsmiec,od_malej)
if(nazwa_oryginalna)then return nazwa_stara;end;
if(odsmiec)then if(od_malej)then return mw.getContentLanguage():lcfirst(nazwa_nowa) else return nazwa_nowa;end;end;
local techniczne_modul=require("Module:Techniczne");
nazwa_nowa=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](nazwa_nowa);
local wzor=mw.ustring.gsub(nazwa_nowa," ","[%%s_]+");
wzor=mw.ustring.gsub(wzor,"^([%s_:]*)([^:]*)(:)([%s_:]*)(.)",function(a,b,c,d,e)
local przestrzen=techniczne_modul["WzórDanejPrzestrzeniNazw"](b);
local duze=mw.getContentLanguage():ucfirst(e);
local male=mw.getContentLanguage():lcfirst(e);
if(duze~=male)then return a..przestrzen..c..d.."["..duze..male.."]";else return s;end;
end);
wzor=mw.ustring.gsub(wzor,"^([%s_:]*)(.)",function(a,b)
local duze=mw.getContentLanguage():ucfirst(b);
local male=mw.getContentLanguage():lcfirst(b);
if(duze~=male)then
return a.."["..duze..male.."]";
else
return nil;
end;
end);
wzor=mw.ustring.gsub(wzor,":","[%%s_]*:[%%s_:]*");
wzor="([%s_]*"..wzor.."[%s_]*)$";
local nazwa_stara_sformatowana=mw.ustring.match(nazwa_stara,wzor);
return nazwa_stara_sformatowana or mw.ustring.gsub(nazwa_stara,"^[%s_:]*","");
end;
local function UsunDwukropki(kod)
local ile;
repeat
kod,ile=mw.ustring.gsub(kod,"^([%s_]*):","%1");
until ile==0;
local odstepy_przed_nazwy,kod,odstepy_po_nazwy=mw.ustring.match(kod,"^([%s_]*)(.-)([%s_]*)$")
return kod,odstepy_przed_nazwy,odstepy_po_nazwy;
end;
local function SzablonoweSymboliczneWywolanie(args,modyfikatory,klucz_przestrzeni,rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local wiki_modul=require("Module:Wiki");
local html_modul=require("Module:Html");
-----
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
local czy_jezykowe=(parametry_modul.CzyTak(klucz_projektu) or (parametry_modul.CzyTak(kod_jezyka) or parametry_modul.CzyTak(kod_projektu)));
----
local Strona=function(strona,klucz_przestrzeni)
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
if(nazwa_przestrzeni=="")then
return (((not czy_jezykowe)or(czy_biezaca))and nazwy_np_modul[klucz_przestrzeni] or klucz_przestrzeni)..":"..strona;
elseif((klucz_przestrzeni~="Template")and(nazwa_przestrzeni~=nazwy_np_modul[klucz_przestrzeni]))then
return (((not czy_jezykowe)or(czy_biezaca))and nazwy_np_modul[klucz_przestrzeni] or klucz_przestrzeni)..":"..strona;
else
return strona;
end;
end;
modyfikatory=html_modul.ZamianaDwukropkaNaKodHtml(modyfikatory);
local function NazwaSzablonu(subnazwa_wyswietlana,subnazwa_bez_ksiazka,nazwa,nazwa_wyswietlana)
if(subnazwa_wyswietlana)then
local subnazwa=mw.ustring.match(nazwa,"/([^/]+)$");
local subnazwa_po_dwukropku=subnazwa and (mw.ustring.match(subnazwa,":(.-)$") or subnazwa) or (mw.ustring.match(nazwa,":(.-)$") or nazwa);
return subnazwa_po_dwukropku;
elseif(subnazwa_bez_ksiazka)then
return mw.ustring.match(nazwa,"^[^/]-:Książka:(.*)$") or mw.ustring.match(nazwa,"^Książka:(.*)$") or nazwa_wyswietlana or nazwa;
end;
return (nazwa_wyswietlana or nazwa);
end;
----
local function NazwaPrzestrzeni()
if(analiza)then
if(czy_biezaca)then
nazwa_przestrzeni=nazwy_modul.Np{nazwa=klucz_przestrzeni,istnieje="tak",["wynik błędu nietekstowy"]="tak",} or klucz_przestrzeni;
else
nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,istnieje="tak",["wynik błędu nietekstowy"]="tak",} or klucz_przestrzeni;
end;
elseif(not czy_jezykowe)then
nazwa_przestrzeni=czy_biezaca and nazwy_np_modul[klucz_przestrzeni] or klucz_przestrzeni;
else
nazwa_przestrzeni=klucz_przestrzeni;
end;
return nazwa_przestrzeni;
end;
local NazwaPrefixStrona=function(nazwa)
if(not nazwa)then return nazwa;end;
if(mw.ustring.match(nazwa,"/$"))then
local techniczne_modul=require("Module:Techniczne");
local ile=techniczne_modul.PoliczZbiory{[1]=nazwa,tekst=true,};
if(ile==0)then
return "Specjalna:Strony_według_prefiksu/"..nazwa;
end;
return nazwa;
end;
return nazwa;
end;
local function ZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,czy_przestrzen,czy_przestrzen_niepolska)
local rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=UsunDwukropki(rozwazana_nazwa_strony,nazwa_oryginalna);
local strona=nazwy_modul[((not czy_przestrzen)and(czy_przestrzen_niepolska)) and "PEŁNANAZWASTRONY" or "NAZWASTRONY"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,};
local szablonowe_modul=require("Module:Szablonowe");
local nazwa=nazwa_oryginalna and strona or (z_przestrzenia and szablonowe_modul["PełnaNazwaStronyWywołańSzablonowych"](rozwazana_nazwa_strony,klucz_przestrzeni,kod_jezyka,kod_projektu) or nazwy_modul["NAZWASTRONY"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,})
if(not z_przestrzenia)then
if((not nazwa_oryginalna)and(klucz_przestrzeni=="Template"))then
local inna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,};
if(inna_nazwa_przestrzeni~="")then
nazwa=(((((czy_przestrzen)or(not czy_przestrzen_niepolska)))and(nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":"..strona) or (strona));
else
--nazwa=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,};
end;
end;
end;
--local nazwa_przestrzeni;
if(czy_przestrzen)then
nazwa_przestrzeni=NazwaPrzestrzeni();
end;
nazwa=z_przestrzenia and nazwa or SformatowanaNazwaStronySzablonuSymbolicznegoWywolania(rozwazana_nazwa_strony,nazwa,nazwa_oryginalna,odsmiec,od_malej);
local linki_modul=require("Module:Linki");
return StworzSymboliczneWywolanieWedlugZebranychDanych(args,odstepy_przed..modyfikatory..przed_nazwa..odstepy_przed_nazwy..linki_modul["Link wewnętrzny"]{["strona"]=NazwaPrefixStrona(((((czy_przestrzen)or(not czy_przestrzen_niepolska)))and(nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":"..strona) or (strona)),["nazwa"]=NazwaSzablonu(subnazwa_wyswietlana,subnazwa_bez_ksiazka,nazwa,nazwa_wyswietlana),["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,analiza=analiza,}..odstepy_po_nazwy..po_nazwa..odstepy_po);
end;
local function NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,czy_przestrzen_niepolska,czy_bez_klucza_przestrzeni,__funkcja,__funkcja2)
local odstepy_przed_nazwy;local odstepy_po_nazwy;
if(__funkcja)then
rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=__funkcja(rozwazana_nazwa_strony,nazwa_oryginalna);
else
rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=UsunDwukropki(rozwazana_nazwa_strony,nazwa_oryginalna);
end;
local strona=nazwy_modul[czy_przestrzen_niepolska and "PEŁNANAZWASTRONY" or "NAZWASTRONY"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,};
if((czy_przestrzen_niepolska)and(__funkcja2))then
nazwa_przestrzeni=__funkcja2(klucz_przestrzeni);
end;
local szablonowe_modul=require("Module:Szablonowe");
local nazwa=z_przestrzenia
and szablonowe_modul["PełnaNazwaStronyWywołańSzablonowych"](strona,klucz_przestrzeni,kod_jezyka,kod_projektu)
or SformatowanaNazwaStronySzablonuSymbolicznegoWywolania(rozwazana_nazwa_strony,strona,nazwa_oryginalna,odsmiec,od_malej);
local linki_modul=require("Module:Linki");
return StworzSymboliczneWywolanieWedlugZebranychDanych(args,odstepy_przed..modyfikatory..przed_nazwa..odstepy_przed_nazwy..linki_modul["Link wewnętrzny"]{["strona"]=NazwaPrefixStrona((not czy_bez_klucza_przestrzeni) and (Strona(strona,klucz_przestrzeni))or((((czy_przestrzen_niepolska)and(__funkcja2)and(nazwa_przestrzeni~="")) and (nazwa_przestrzeni..":") or (""))..strona)),["nazwa"]=NazwaSzablonu(subnazwa_wyswietlana,subnazwa_bez_ksiazka,nazwa,nazwa_wyswietlana),["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,analiza=analiza,}..odstepy_po_nazwy..po_nazwa..odstepy_po);
end;
----
if((czy_jezykowe)and(nazwa_przestrzeni~=""))then
if(czy_biezaca)then
if(nazwa_przestrzeni==nazwy_np_modul[klucz_przestrzeni])then
return ZgodneZKluczemPrzestrzeni(nil,nil,nil,false,true);
else
return NieZgodneZKluczemPrzestrzeni(nil,nil,nil,true);
end;
else
nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,kanoniczna="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",}
if(nazwa_przestrzeni==nazwy_np_modul.kanoniczna[klucz_przestrzeni])then
return ZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,false,true);
else
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true);
end;
end;
else
nazwa_przestrzeni=((czy_jezykowe) and (not czy_biezaca))and nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=rozwazana_nazwa_strony,} or nazwa_przestrzeni;
if(nazwa_przestrzeni~="")then
if(nazwa_przestrzeni==nazwy_np_modul[klucz_przestrzeni])then
if(not czy_jezykowe)then
return ZgodneZKluczemPrzestrzeni(nil,nil,nil,false,true);
else
return ZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true,false);
end;
else
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true);
end;
elseif((mw.ustring.match(rozwazana_nazwa_strony,"^[%s_]*:[%s_:]*"))and((klucz_przestrzeni~="MediaWiki")and(klucz_przestrzeni~="Module")))then
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true,true,function(rozwazana_nazwa_strony)
local odstepy_przed_dwukropek,odstepy_po_dwukropek,rozwazana_uzyskana_nazwa_strony,odstepy_po_nazwy=mw.ustring.match(rozwazana_nazwa_strony,"^([%s_]*):([%s_]*)([^%s_:].-)([%s_]*)$");
local przed;
if(not odstepy_przed_dwukropek or not odstepy_po_dwukropek or not rozwazana_uzyskana_nazwa_strony)then
local odstepy_przed_dwukropek,odstepy_po_dwukropek;
odstepy_przed_dwukropek,odstepy_po_dwukropek,rozwazana_uzyskana_nazwa_strony,odstepy_po_nazwy=mw.ustring.match(rozwazana_nazwa_strony,"^([%s_:]*):([%s_]*)([^%s_:].-)([%s_]*)$");
przed=mw.ustring.gsub(odstepy_przed_dwukropek,":","")..":"..odstepy_po_dwukropek;
else
przed=odstepy_przed_dwukropek..":"..odstepy_po_dwukropek;
end;
return rozwazana_uzyskana_nazwa_strony,przed,odstepy_po_nazwy;
end);
else
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true,true,function(rozwazana_nazwa_strony)
local parametry_modul=require("Module:Parametry");
local rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=UsunDwukropki(rozwazana_nazwa_strony);
local strona=analiza and mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]="tak",}) or rozwazana_nazwa_strony;
return strona,odstepy_przed_nazwy,odstepy_po_nazwy;
end,function(klucz_przestrzeni)
local nazwa_przestrzeni=NazwaPrzestrzeni();
return nazwa_przestrzeni;
end);
end;
end;
end;
local function UzyskajDaneOdArgumentuPierwszego(argument_pierwszy,nazwa_wyswietlana)
local przed,pole_nazwy,po=mw.ustring.match(nazwa_wyswietlana or argument_pierwszy,"^([%s_]*)(.-)([%s_]*)$");
local szablonowe_modul=require("Module:Szablonowe");
if(nazwa_wyswietlana)then
argument_pierwszy=mw.ustring.match(argument_pierwszy,"^[%s_]*(.-)[%s_]*$");
end;
local pole,modyfikatory,tab_mod=szablonowe_modul.WydzielanieOpcjiModyfikatorowych(nazwa_wyswietlana and argument_pierwszy or pole_nazwy);
return przed,pole,po,modyfikatory,tab_mod;
end;
local function OdsmiecParametrySymbolicznegoWywolania(args,usun_konce)
local parametry_modul=require("Module:Parametry");
local args2={};
for licznik,wartosc in ipairs(args)do
if(licznik==1)then
args2[licznik]=parametry_modul["Odstępy"]{[1]=wartosc,[2]="tak",};
else
local _parametr,_wartosc=mw.ustring.match(wartosc,"^%s*([^=]-)%s*=%s*(.-)%s*$");
if(_parametr and _wartosc)then
args2[licznik]=_parametr.."=".._wartosc;
elseif(usun_konce)then
args2[licznik]=mw.text.trim(wartosc);
else
args2[licznik]=wartosc;
end
end;
end;
return args2;
end;
local function ParametryFunkcjiSLubM(frame,domyslna_nazwa_szablonu)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local klucz_projektu=args["klucz projektu"] or args["k"];
local kod_jezyka=args["kod języka"] or args["j"];
local kod_projektu=args["kod projektu"] or args["p"];
local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
local analiza=parametry_modul.CzyTak(args["analiza"]);
local z_przestrzenia=parametry_modul.CzyTak(args["z przestrzenią"]);
local nazwa_wyswietlana=parametry_modul.CzyTak(args["nazwa"]) and args["nazwa"] or nil;
local subnazwa_wyswietlana=parametry_modul.CzyTak(args["subnazwa"]);
local subnazwa_bez_ksiazka=parametry_modul.CzyTak(args["subnazwa bez książka"]);
local argument_pierwszy=args[1];
local czy_niepusty_argument_pierwszy=parametry_modul["CzyTakCiąg"](argument_pierwszy)
local szablonowe_modul=require("Module:Szablonowe");
local function UsuwanieKomentarzy(argument_pierwszy)
---- Usuwanie normalnych komentarzy z kodu.
local techniczne_modul=require("Module:Techniczne");
argument_pierwszy=techniczne_modul.UsuwanieKomentarzowe(argument_pierwszy);
---- Usuwanie zakodowanych komentarzy z kodu.
argument_pierwszy=mw.ustring.gsub(argument_pierwszy,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),"");
return argument_pierwszy;
end;
local argument_pierwszy=czy_niepusty_argument_pierwszy and UsuwanieKomentarzy(argument_pierwszy) or domyslna_nazwa_szablonu;
---
local PrzedPoStronaNazwa=function(nazwa)
if(not nazwa)then return;end;
local nazwa,ile=mw.ustring.gsub(nazwa,szablonowe_modul.NormaWzoruKodowaniaTekstu("OGRANICZNIK"),"");
local przed="";
repeat
local wzor="^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ").."[%s_]*)"
local przed_temp=mw.ustring.match(nazwa,wzor);
if(not przed_temp)then break;end;
przed=przed..przed_temp;
nazwa=mw.ustring.gsub(nazwa,wzor,"");
until false;
local po="";
repeat
local wzor="([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ","%d+").."[%s_]*)$";
local po_temp=mw.ustring.match(nazwa,wzor);
if(not po_temp)then break;end;
po=po_temp..po;
nazwa=mw.ustring.gsub(nazwa,wzor,"");
until false;
local czy_ile=(ile>0)and true or false;
return przed,po,nazwa,czy_ile;
end;
local przed_nazwa,po_nazwa,nazwa,czy_ile=PrzedPoStronaNazwa(nazwa_wyswietlana);
nazwa_wyswietlana=nazwa or nazwa_wyswietlana;
---
local odstepy_przed,rozwazana_nazwa_strony,odstepy_po,modyfikatory,tab_mod=UzyskajDaneOdArgumentuPierwszego(argument_pierwszy,nazwa_wyswietlana);
local __modyfikatory=args["modyfikatory"];
if(__modyfikatory)then
__modyfikatory=mw.ustring.gsub(__modyfikatory,szablonowe_modul.NormaWzoruKodowaniaTekstu("OGRANICZNIK"),"");
end;
modyfikatory=parametry_modul.CzyTak(__modyfikatory) and __modyfikatory or modyfikatory;
if(not parametry_modul["CzyTakCiąg"](rozwazana_nazwa_strony))then
rozwazana_nazwa_strony=domyslna_nazwa_szablonu;
end;
if(czy_ile)then
rozwazana_nazwa_strony=parametry_modul["Odstępy"](rozwazana_nazwa_strony);
modyfikatory=mw.ustring.gsub(modyfikatory,"[%s_]+$","");
end;
args[1]=rozwazana_nazwa_strony;
analiza=(not analiza)and (args[1] and mw.ustring.match(args[1],"^[%s_:]*[^%s_:]+:.*$") and true or false) or analiza;
bez_przetwarzania=bez_przetwarzania or ((not analiza) and "tak" or nil);
local nazwa_oryginalna=(not analiza and true) or parametry_modul.CzyTak(args["oryginalna"] or args["o"]);
local odsmiec=(not analiza and true) or parametry_modul.CzyTak(args["odśmieć"]);
local historia=(not analiza and true) or parametry_modul.CzyTak(args["historia"]);
local usun_konce=parametry_modul.CzyTak(args["usuń końce"]);
local od_malej=parametry_modul.CzyTak(args["od małej"]);
local usun_odstepy=parametry_modul.CzyTak(args["usuń odstępy"]);
if(usun_odstepy)then
odstepy_przed="";
odstepy_po="";
if(odsmiec)then
if(mw.ustring.match(rozwazana_nazwa_strony,"^[%s_]*:"))then
rozwazana_nazwa_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"^[%s_:]*","");
rozwazana_nazwa_strony=":"..rozwazana_nazwa_strony;
end;
rozwazana_nazwa_strony=parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]=nil,[3]=nil,};
end;
end;
if((odsmiec)and(not historia))then args=OdsmiecParametrySymbolicznegoWywolania(args,usun_konce);end;
if((odsmiec)and(not historia))then modyfikatory=mw.ustring.gsub(modyfikatory,"[%s_]*","");end;
if(analiza)then
local wiki_modul=require("Module:Wiki");
kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local koncowa_rozwazana_nazwa_strony;
koncowa_rozwazana_nazwa_strony,kod_jezyka,kod_projektu=wiki_modul.KodyNazwyStrony(rozwazana_nazwa_strony,kod_jezyka,kod_projektu);
klucz_projektu=nil;
if(koncowa_rozwazana_nazwa_strony~=rozwazana_nazwa_strony)then
local techniczne_modul=require("Module:Techniczne");
local wzor_rozwazana_nazwa_strony=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](koncowa_rozwazana_nazwa_strony);
local koncowa_rozwazana_nazwa_strony_wynikowa_kodow=mw.ustring.gsub(rozwazana_nazwa_strony,wzor_rozwazana_nazwa_strony.."$","");
if(mw.ustring.match(koncowa_rozwazana_nazwa_strony_wynikowa_kodow,":[%s_]*:[%s_]*$"))then
koncowa_rozwazana_nazwa_strony_wynikowa_kodow=mw.ustring.gsub(koncowa_rozwazana_nazwa_strony_wynikowa_kodow,"(:[%s_]*)$","");
end;
local wzor_koncowa_rozwazana_nazwa_strony_wynikowa_kodow=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](koncowa_rozwazana_nazwa_strony_wynikowa_kodow);
local odstep_kodow=((not odsmiec) or (not usun_odstepy)) and mw.ustring.gsub(koncowa_rozwazana_nazwa_strony_wynikowa_kodow,"[%w%p]","") or "";
rozwazana_nazwa_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"^"..wzor_koncowa_rozwazana_nazwa_strony_wynikowa_kodow,odstep_kodow);
rozwazana_nazwa_strony=((odsmiec)and(usun_odstepy)) and mw.ustring.gsub(rozwazana_nazwa_strony,"^[%s_:]*:[%s_:]*",":") or rozwazana_nazwa_strony;
else
local pudelko_modul=require("Module:Pudełko");
kod_jezyka=((not kod_jezyka)or(kod_jezyka~=pudelko_modul["Kod języka tego projektu"]()))and kod_jezyka or nil;
kod_projektu=((not kod_projektu)or(kod_projektu~=pudelko_modul["Kod projektu tego projektu"]()))and kod_projektu or nil;
end
end;
analiza=analiza and "tak" or nil;
--odstepy_przed=odstepy_przed..(przed_nazwa or "");
--odstepy_po=(po_nazwa or "")..odstepy_po;
przed_nazwa=(przed_nazwa or "");
po_nazwa=(po_nazwa or "");
return args,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,bez_znacznikow,bez_przetwarzania,z_przestrzenia,analiza,nazwa_oryginalna,odsmiec,historia,usun_konce,od_malej,usun_odstepy,argument_pierwszy,odstepy_przed,przed_nazwa,rozwazana_nazwa_strony,po_nazwa,odstepy_po,modyfikatory,tab_mod;
end;
local p={
["S"] = function(frame)
local args,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,bez_znacznikow,bez_przetwarzania,z_przestrzenia,analiza,nazwa_oryginalna,odsmiec,historia,usun_konce,od_malej,usun_odstepy,argument_pierwszy,odstepy_przed,przed_nazwa,rozwazana_nazwa_strony,po_nazwa,odstepy_po,modyfikatory,tab_mod=ParametryFunkcjiSLubM(frame,"Nieznany szablon");
local CzyJestHash=function(rozwazana_nazwa_strony)
rozwazana_nazwa_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"&#(%d+);",function(kod)
return mw.ustring.char(kod);
end);
local czy_tak=mw.ustring.match(rozwazana_nazwa_strony,"#") and true or false;
return czy_tak;
end;
if(CzyJestHash(rozwazana_nazwa_strony))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tekst="Problem z wywołaniem symbolicznym szablonu {{s}}: W nazwie strony znaleziono znak \"#\", co jest mylone z nagłówkiem strony!",tag="strong",},};
end;
local s_dane=mw.loadData('Module:S/dane');
local tab_magiczne_szablony=s_dane.tab_magiczne_szablony;
if(tab_mod)then
local parametry_modul=require("Module:Parametry");
if(not parametry_modul["CzySąElementyNazwaneTablicy"](tab_mod))then
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..przed_nazwa,(args[1] or "Nieznany tag")..po_nazwa..odstepy_po);
end;
elseif(tab_mod["#if:"] or tab_mod["#ifeq:"] or tab_mod["#iferror:"] or tab_mod["#tag:"] or tab_mod["#switch:"] or tab_mod["#property:"] or tab_mod["#expr:"] or tab_mod["#ifexpr:"] or tab_mod["#ifexist:"] or tab_mod["gender:"] or tab_mod["DEFAULTSORT:"])then
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..(args[1] or "Nieznany tag")..odstepy_po);
elseif((not tab_mod["#invoke:"])and(not tab_mod["int:"]))then
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..przed_nazwa..(args[1] or "Nieznany tag")..po_nazwa..odstepy_po);
end;
elseif((tab_mod["#invoke:"]) and (not tab_mod["int:"]))then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Module",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
elseif((tab_mod["int:"]) and (not tab_mod["#invoke:"]))then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"MediaWiki",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
elseif(tab_mod["int:"] and tab_mod["#invoke:"])then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tekst="Problem z wywołaniem symbolicznym szablonu {{s}}: Podano sprzeczne ze sobą modyfikatory podstawowe!",tag="strong",},};
else
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..przed_nazwa..(args[1] or "Nieznany tag")..po_nazwa..odstepy_po);
end;
end;
else
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..(args[1] or "Nieznany tag")..odstepy_po);
end;
end;
end,
["M"] = function(frame)
local args,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,bez_znacznikow,bez_przetwarzania,z_przestrzenia,analiza,nazwa_oryginalna,odsmiec,historia,usun_konce,od_malej,usun_odstepy,argument_pierwszy,odstepy_przed,przed_nazwa,rozwazana_nazwa_strony,po_nazwa,odstepy_po,modyfikatory,tab_mod=ParametryFunkcjiSLubM(frame,"Nieznany moduł");
if(mw.ustring.match(rozwazana_nazwa_strony,"#"))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tekst="Problem z wywołaniem symbolicznym szablonu {{s}}: W nazwie strony znaleziono znak \"#\", co jest mylone z nagłówkiem strony!",tag="strong",},};
end;
rozwazana_nazwa_strony=odstepy_przed..rozwazana_nazwa_strony;
odstepy_przed="";
return SzablonoweSymboliczneWywolanie(args,"#invoke:","Module",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
end,
}
return p;
bdycfu2qabvfr0s68u5saq4uxomw3ue
Moduł:Techniczne
828
56417
551361
550968
2026-08-11T14:17:50Z
Persino
2851
551361
Scribunto
text/plain
local p={};
p["Pierwszy niepusty"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local i=1;
local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](args,"test");
local licznik=1;
while true do
local test=args["test"..i];
local _i=args[i];
local zmienna=test or _i;
local czy_tak=parametry_modul.CzyTak(zmienna);
if(czy_tak)then
return (_i)and _i or "{{{"..i.."}}}";
end;
if(licznik>=liczba_elementow_w_tablicy_args)then return;end;
if(zmienna)then licznik=licznik+1;end;
i=i+1;
end;
end;
function p.NowikiParametr(frame)
local parametr=frame.args[1];
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
parametr=mw.ustring.gsub(parametr,"(.)",function(s)
return techniczne_dane_modul.tablica_szablonowa[s] or techniczne_dane_modul.tablica_linki[s] or techniczne_dane_modul.tablica_tagowa[s];
end);
return parametr;
end;
function p.EncodeParametr(frame)
local parametr=frame.args[1];
local szablonowe_dane_modul=require("Module:Szablonowe/dane");
parametr=mw.ustring.gsub(parametr,"(\")([^\"]+)(\")",function(a,str,b)
return a..mw.text.encode(str)..b;
end)
parametr=mw.ustring.gsub(parametr,"<(/?)([^<>]+)>",function(znak,str)
local znacznik=mw.ustring.match(str,"^(%a+)$") or mw.ustring.match(str,"^(%a+)%s+");
if(znacznik)then
znacznik=mw.getContentLanguage():lc(znacznik);
local czy_znacznik=szablonowe_dane_modul.tablica_html_mechanizmu_mediawiki[znacznik];
if(not czy_znacznik)then
return "&lt;"..znak..mw.text.encode(str).."&gt;";
end;
end;
end);
parametr=mw.text.decode(parametr);
parametr=mw.text.encode(parametr);
return parametr;
end;
p["PełnaNazwaOpisuModułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa");
local komunikat = mw.message.new('Scribunto-doc-page-name', '$1');
local zawartosc_komunikatu;
if(komunikat:exists())then
zawartosc_komunikatu=komunikat:plain();
zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu);
else
zawartosc_komunikatu="Module:$1/opis";
end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_wedlug_strony_komunikatu=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu);
local pelna_nazwa_strony_podanej_lub_aktualnej=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"]();
local wzor_pelnej_nazwy_strony=mw.ustring.gsub(pelna_nazwa_strony_wedlug_strony_komunikatu,"%$1",".-");
if(not mw.ustring.match(pelna_nazwa_strony_podanej_lub_aktualnej,"^"..wzor_pelnej_nazwy_strony.."$"))then
local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony_podanej_lub_aktualnej);
local przetworzona_nazwa_strony=p["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony);
local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony)
local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu);
return pelna_strona_opisu;
else
return pelna_nazwa_strony_podanej_lub_aktualnej;
end;
end;
p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local wiki_modul=require("Module:Wiki");
local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
local nazwy_modul=require("Module:Nazwy");
local uchwyt_przestrzeni_nazw;
if(czy_biezace_wiki)then
uchwyt_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,uchwyt="tak",};
else
uchwyt_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,uchwyt="tak",};
end;
if(uchwyt_przestrzeni_nazw)then
return "tak";
else
return;
end;
end;
p["WzórDanejPrzestrzeniNazw"] = function (frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end )
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1");
wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórPełnejNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona);
if(nazwa_przestrzeni~="")then
nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni);
end;
nazwa_strony=p["WzórNazwyStrony"](nazwa_strony);
return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony;
end;
p["TekstBezOdwołańDoParametrówWeWzorze"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%%%","%%%%%%");
tekst=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1");
return tekst;
end;
p["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%(%a+)","%%%%%1");
return tekst;
end;
p["PrzekształćWzórDoCzystegoTekstu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
return tekst;
end;
function p.CzyStronaIstniejeJejParametry(nazwa_strony_lub_uchwyt_strony,czy_zawartosc)
local uchwyt_strony;
local parametry_modul=require("Module:Parametry");
local czy_string=parametry_modul.TypeString(nazwa_strony_lub_uchwyt_strony);
local TempFunc=function(uchwyt_strony)
if(czy_zawartosc)then
return nil,nil,false;
else
return false;
end;
end;
if(czy_string)then
uchwyt_strony = mw.title.makeTitle('',nazwa_strony_lub_uchwyt_strony);
if(not uchwyt_strony)then return TempFunc();end;
else
uchwyt_strony=nazwa_strony_lub_uchwyt_strony;
if(not uchwyt_strony)then return TempFunc();end;
end;
local id=uchwyt_strony.namespace;
if((id==-1)or(id==-2))then
local czy_istnieje=uchwyt_strony and uchwyt_strony.exists or nil;
if(not czy_zawartosc)then
return czy_istnieje;
else
return uchwyt_strony,nil,czy_istnieje;
end;
else
local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
if(czy_zawartosc)then
if(not tekst_artykulu)then
return uchwyt_strony,nil,false;
end;
return uchwyt_strony,tekst_artykulu,true;
end;
if(not tekst_artykulu)then
return false;
end;
return true;
end;
end;
function p.PoliczZbiory(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local tekst=parametry_modul.CzyTak(args["tekst"]);
local liczba_istniejacych_zbiorow=0;
local tabela_uchwytow_stron={};
for _,nazwa_strony in ipairs(args) do
local uchwyt_strony,tekst_artykulu,czy_istnieje = p.CzyStronaIstniejeJejParametry(nazwa_strony,true);
tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,};
if((czy_istnieje)and((not tekst)or((tekst)and(tekst_artykulu))))then
liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1;
end;
end;
return liczba_istniejacych_zbiorow,tabela_uchwytow_stron;
end;
function p.TransformacjaWzoru(ciag)
return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1");
end;
p["WyświetlajKodySpecjalne"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
local html_modul=require("Module:Html");
local i=html_modul.KodHTMLZnaku("&");
local hash=html_modul.KodHTMLZnaku("#");
local sr=html_modul.KodHTMLZnaku(";");
text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr);
text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr);
return text;
end;
function p.Wikikod(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
local nazwa_modulu=((parametry_modul["CzyTakCiąg"](przestrzen)) and (przestrzen..":") or "")..(nazwa or "Przykłowa strona");
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local tab_komentarze={};
local licznik_komentarze=1;
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,nazwa_modulu,nil,false,nil,true,nil,nil,nil,nil,function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nie ma takiej strony lub artykulu."}};
end;
tekst=p["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
local html_modul=require("Module:Html");
tekst=mw.ustring.gsub(tekst,"&(%a+);","&%1;");
tekst=mw.ustring.gsub(tekst,"&#(%d+);","&#%1;");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tab_szablonowa=techniczne_dane_modul.tablica_szablonowa;
local tab_linki=techniczne_dane_modul.tablica_linki;
local tab_tagow=techniczne_dane_modul.tablica_tagowa;
local tabela_wikitabelowa=techniczne_dane_modul.tabela_wikitabelowa;
local tab_zmienne=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe")
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local TekstBezKomentarzy=function(tekst,poczatek)
tekst=mw.ustring.gsub(tekst,(poczatek or "")..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE"),function(kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
return "";
end;
return nil;
end);
--tekst=parametry_modul["Odstępy"](tekst);
return tekst;
end;
local UsuwanieModyfikatoroweStron=function(nazwa,tabela_modyfikatorow)
if(not tabela_modyfikatorow)then return nazwa,"";end;
--local nazwa,komentarz=TekstBezKomentarzy(nazwa,"^[%s_]*");
local modyfikatory="";
repeat
local ile_zmieniono=0;
local __modyfikatory=nil;
nazwa=mw.ustring.gsub(nazwa,"^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE")..")",function(poczatek,kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
__modyfikatory=poczatek;
return "";
end;
end);
nazwa=mw.ustring.gsub(nazwa,"^(([%s_]*)(#?)([%s_]*)([^%s#:_]+)([%s_]*:))",function(calosc,a,b,c,d,e)
d=b..TekstBezKomentarzy(d)..":";
if(tabela_modyfikatorow[d])then
ile_zmieniono=ile_zmieniono+1;
modyfikatory=modyfikatory..(__modyfikatory or "")..calosc;
return "";
end;
return nil;
end);
if(ile_zmieniono==0)then
nazwa=(__modyfikatory or "")..nazwa;
end;
until (ile_zmieniono==0);
return nazwa,modyfikatory;
end;
local ZamieniajZnakiNaMikroSzablony=function(szablon,__funkcja)
szablon=mw.ustring.gsub(szablon,"(.)",function(znak)
local odpowied;
if(__funkcja)then
odpowied=__funkcja(znak);
else
odpowied=tab_linki[znak] or tab_szablonowa[znak];
end;
if(odpowied)then return odpowied;end;
return znak;
end);
return szablon;
end;
local CzyBezDwukropka=function(dwukropki)
return (not mw.ustring.match(dwukropki,":") and "tak" or "");
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local szablon_old=szablon;
szablon=TekstBezKomentarzy(szablon);
local pseudoszablon,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if((pseudoszablon)and(((tabela_modyfikatorow)and((szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))
or(tabela_modyfikatorow["#invoke:"])
or(tabela_modyfikatorow["int:"]))
and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
or((not tabela_modyfikatorow)and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
))then
local UstawianieLinkowe=function(szablon,ktore)
local SzablonStrona=function(szablon)
local strona=TekstBezKomentarzy(szablon);
strona=parametry_modul["Odstępy"](strona);
local nazwa,modyfikatory=UsuwanieModyfikatoroweStron(szablon,tabela_modyfikatorow);
strona=mw.ustring.gsub(strona,"=","{{=}}");
nazwa=mw.ustring.gsub(nazwa,"=","{{=}}");
return "{{s|oryginalna=tak|analiza=tak|"..strona
.."|nazwa="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..nazwa..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
.."|modyfikatory="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..modyfikatory..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
..(ktore and "|" or "}}");
end;
if(ktore)then
szablon=mw.ustring.gsub(szablon,"=","{{=}}");
szablon,ile=mw.ustring.gsub(szablon,"^{{([^|]-)|",function(szablon)
return SzablonStrona(szablon);
end);
else
szablon=mw.ustring.gsub(szablon,"^{{([^|]-)}}",function(szablon)
return SzablonStrona(szablon);
end);
end;
return szablon;
end;
if(mw.ustring.match(szablon_old,"|"))then
if(mw.ustring.match(szablon,"^{{[^|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."[^|]*|"))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,true);
end;
else
if(mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
if(pseudoszablon)then
if(((not tabela_modyfikatorow)or((not tabela_modyfikatorow["int:"])and(not tabela_modyfikatorow["#invoke:"])))and(tab_zmienne(pseudoszablon)))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,false);
end;
else
return UstawianieLinkowe(szablon_old,false);
end;
end;
else
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
elseif(obiekt=="LINKW")then
local __szablon=TekstBezKomentarzy(szablon);
local __dwukropki,__strona=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)%]%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)%]%]$");
return "{{l|"..strona.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}"
end;
else
local __dwukropki,__strona,__nazwa=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)|(.*)%]%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)|(.*)%]%]$");
return "{{l|"..strona.."|"..nazwa.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}";
end;
end;
elseif(obiekt=="LINKZ")then
local __szablon=TekstBezKomentarzy(szablon);
local __strona=mw.ustring.match(__szablon,"^%[%s*(%S+)%s*%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s*)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
else
local __strona,__nazwa=mw.ustring.match(__szablon,"^%[(%s*%S+)(%s+.-)%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s+.-)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
end;
elseif(obiekt=="ZMIENNA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="NOWIKI")
or(obiekt=="PRE")
or(obiekt=="MATH")
or(obiekt=="ŹRÓDŁO")
or(obiekt=="GALERIA")
or(obiekt=="MAPAOBRAZU")
or(obiekt=="PUDEŁKOWEJŚCIA")
)then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_linki[znak] or tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="QUIZ")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="ZNACZNIK")or(obiekt=="INCLUDE"))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=(znak~="\"")and tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="ATRYBUTY")then
szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("(UCIECZKI)"),function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
return szablon;
end);
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="WIKITABELA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tabela_wikitabelowa[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="INNEPRE")then
--szablon=mw.ustring.gsub(szablon,"^[^%S\n]","&nbsp;");
return szablon;
else
return szablon;
end;
end);
tekst=frame:getParent():preprocess(tekst);
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),function(kod)
kod=tonumber(kod);
local komentarz=tab_komentarze[kod];
komentarz=mw.ustring.gsub(komentarz,"^<!%-%-(.-)%-%->$",function(zawartosc)
return "<!--"..zawartosc.."-->";
end);
return komentarz;
end);
return tekst;
end;
p.WikikodStrony = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
if(not parametry_modul.CzyTak(nazwa))then return;end;
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or false;
if(not text)then return;end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
return text;
end;
function p.LuaSubst(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args[1] or args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
local inkludowany=parametry_modul.CzyTak(args["inkludowana"]);
if(inkludowany)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
else
local dokumentacja=parametry_modul.CzyTak(args["dokumentacja"]);
if(dokumentacja)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","%1");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","");
end;
end;
return tekst;
end;
p["LuaSurowySzablonSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
---
---
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,nil,
function(szablon,obiekt,kod,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
nil,nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end;
if(nazwa_szablonu=="Moduł:Ramka")then
local Funkcja=tabela_parametrow_szablonu[true];
if((not Funkcja)or(Funkcja~="Szablon"))then return;end;
local pelna_nazwa_szablonu=tabela_parametrow_szablonu["Nazwa"];
if(not pelna_nazwa_szablonu)then return;end;
pelna_nazwa_szablonu="Szablon:"..pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,pelna_nazwa_szablonu,nil,false,nil,true,true);
if(not tekst)then return;end;
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe");
tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
return;
end,
function(szablon,obiekt,kod,tekst)
if(obiekt=="ZMIENNA")then
local zmienna;local wartosc_domyslna;
zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$");
if(not zmienna)then
zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$");
end;
zmienna=mw.text.trim(zmienna);
local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna];
if(wartosc_zmiennej)then
return wartosc_zmiennej;
end;
end;
end,nil,nil,nil,nil,
function(tekst_artykulu,tab_element)
return nil,true,nil,true;
end,
function(nazwa)
return true;
end);
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul);
return tekst;
end;
end);
if(wynik)then return wynik;end;
end;
return;
end,nil,nil,nil,nil,
function(tekst_artykulu,tab_element)
return nil,true,nil,true;
end,
function(nazwa)
return true;
end);
local specjalne_modul=require("Module:Specjalne");
local tab_modyfikatory={["#if:"]=true,["#ifeq:"]=true,["#ifexist:"]=true,["#ifexpr:"]=true,};
local tab_mediawiki=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tabela_zmiennych={["site"]=true;};
local tablica_danych_parametrow_szablonu_strony={};
local function UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon)
local ile=0;
local szablon=mw.ustring.gsub(szablon,"({{{.+}}})",function(zmienna)
local numerowana=mw.ustring.match(zmienna,"^{{{%s*(%d+)%s*|");
if(numerowana)then
local ile2=0;
zmienna=mw.ustring.gsub(zmienna,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
ile=ile+1;
ile2=ile2+1;
return a..c;
end;
end);
return (ile2>0)and zmienna or nil;
end;
end);
return szablon,ile;
end;
local function UsuwaniePseudoSzablonowe(szablon)
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tab_mediawiki(nazwa_szablonu))then
return "";
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
end;
return nil, true;
end);
return szablon;
end;
local function PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tabela_modyfikatorow)then
for name,value in pairs(tabela_modyfikatorow)do
if(tab_modyfikatory[name])then
local warunek,dalej=mw.ustring.match(szablon,"^{{([^{}|]+)(.-)$");
if(warunek)then
local iterator=szablonowe_modul.IteratorSzablonowyZakodowanegoTekstu(nil,dalej,nil,tablica_analizy_obiektow_strony_dany_modul);
local czy_usunac_kreski_pionowe=false;
for szablon_dalej,obiekt_dalej,kod_dalej in iterator do
if(obiekt_dalej=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon_dalej,tablica_danych_parametrow_szablonu_strony,kod_dalej,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((mw.ustring.match(nazwa_szablonu,"^Infobox .*$"))or(mw.ustring.match(nazwa_szablonu,"^Link%u")))then
return true;
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
elseif(obiekt_dalej=="LINKW")then
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon_dalej);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
end;
end;
if(czy_usunac_kreski_pionowe)then
warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
end);
return "{{"..warunek..dalej;
else
local warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul);
return "{{"..warunek..dalej;
end;
end;
end;
end;
end;
end;
local function PlikowePrzetwarzanie(szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieDivowe(szablon,obiekt,kod)
local szablon,ile=UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
return wynik;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieSzablonowe(szablon,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local infobox=mw.ustring.match(nazwa_szablonu,"^Infobox .*$");
local link=mw.ustring.match(nazwa_szablonu,"^Link%u");
if((infobox)or(link))then
if((link)and(not infobox))then
szablon="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
end;
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod ,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return nil;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(((infobox)and(b==""))or((link)and((tonumber(a1))or(tabela_zmiennych[a1]))))then
return a..c;
end;
end);
return szablon;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
end;
return szablon;
end);
return szablon;
end;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
return wynik;
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
szablon=PrzetwarzanieSzablonowe(szablon,obiekt,kod);
if(szablon)then return szablon;end;
elseif(obiekt=="ZMIENNA")then
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
else
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon);
if(wynik)then
local spanramka="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
return spanramka;
end;
end;
end;
return szablon;
end);
return tekst;
end;
function p.NowaLinia(frame)
return "\n";
end;
function p.Nowiki(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local PobierzParametr=parametry_modul.PobierzParametr(args);
local tekst=PobierzParametr("tekst") or PobierzParametr(1);
local sprawdz_modul=require("Module:Sprawdź");
tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},}
tekst=mw.ustring.gsub(tekst,"([&<>={}|!%+%-%*;:#\"\'%[%]/\\])",function(znak)
return "&#"..mw.ustring.byte(znak)..";";
end);
return tekst;
end;
function p.FunkcjaLua(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local modul=require("Module:"..(args[1] or args["moduł"]));
if(modul)then
if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then
local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,})
return modul[args[2] or args["nazwa"] or args["funkcja"]](args2);
end;
end;
end;
p["RozwińSzablonWzględemPodanychParametrów"] = function (frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame)
local PobierzParametr=parametry_modul.PobierzParametr(args);
local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or "Nazwa strony";
local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template";
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or nil;
if(not text)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Strona nie istnieje lub nie ma zawartości."}};
end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
local bezkluczy={
["Nazwa strony"]=true,
["Nazwa"]=true,
["Miano przestrzeni nazw"]=true,
["Przestrzeń"]=true,
["wyspecjalizowana"]=true,
["nie rozwiń"]=true,
};
local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy);
local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab};
text=parametry_modul.CzyTak(frame.args["nie rozwiń"]) and text or frame2:preprocess(text);
return text;
end;
p["LiczbaBajtówCiąguDoNormy"] = function(frame)
local str=frame.args[1] or frame.args["ciąg"];
local ile=tonumber(frame.args[2] or frame.args["norma"]);
if(not ile)then return #str;end;
if(#str<=ile)then
return #str;
end;
return nil;
end;
p["LiczbaStronJakoPozycjeDanejKategorii"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria";
local kat={
["subcats"]=true,
["files"]=true,
["pages"]=true,
}
local typ=args["typ"];
typ=(typ and kat[args["typ"]]) and args["typ"] or "all";
local nazwy_modul=require("Module:Nazwy");
kategoria=nazwy_modul["NAZWASTRONY"](kategoria);
return mw.site.stats.pagesInCategory(kategoria,typ);
end;
p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"] = function(frame,tablica_danych_parametrow_szablonu_strony,kod)
----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony;
end;
end;
end;
---
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local adres_wzgledny=PobierzParametr(1) or PobierzParametr("względny");
if(not mw.ustring.match(adres_wzgledny,"/"))then return adres_wzgledny;end;
local adres_biezacy=PobierzParametr(2) or PobierzParametr("bieżący");
local adres;
local dwukropek;
if(mw.ustring.match(adres_wzgledny,"^[%s_]*/"))then
if(adres_biezacy)then
adres_biezacy,dwukropek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy..adres_wzgledny;
else
return nil;
end;
else
if((mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*%.[%s_]*/")))then
if(adres_biezacy)then
adres_biezacy,dwukrowek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy.."/"..adres_wzgledny;
else
return nil;
end;
else
adres_wzgledny,dwukropek=mw.ustring.gsub(adres_wzgledny,"^[%s_]*:","");
adres=adres_wzgledny;
end;
end;
if(adres~="")then
while((mw.ustring.match(adres,"/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*/")))do
adres=mw.ustring.gsub(adres,"/[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/+","/");
adres=mw.ustring.gsub(adres,"^/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"^[^/]*/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
adres=mw.ustring.gsub(adres,"/([^/]*)/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
end;
adres=mw.ustring.gsub(adres,"[%s_]*/[%s_]*","/");
adres=mw.ustring.gsub(adres,"^[%s_]*/+","");
adres=mw.ustring.gsub(adres,"[%s_]*/+","/");
adres=mw.ustring.gsub(adres,"/+[%s_]*$","");
adres=mw.ustring.gsub(adres,"^[%s_]*","");
adres=mw.ustring.gsub(adres,"[%s_]*$","");
adres=mw.ustring.gsub(adres,"[%s_]+"," ");
end;
local wynik=(((dwukropek)and(dwukropek>0)) and ":" or "")..adres;
-----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-1])then tablica_danych_parametrow_szablonu_strony[-1]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony=wynik;
end;
-----
return wynik;
end;
function p.PrzekierowanieDoStrony(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_modulu=PobierzParametr(1);
local html_modul=require("Module:Html");
local pudelko_modul=require("Module:Pudełko");
nazwa_modulu=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_modulu);
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_modulu);
if(czy_nazwa_niepoprawna)then
mw.log("Niepoprawna nazwa modulu strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
local title=mw.title.makeTitle('',nazwa_modulu);
if(title)then
local strona=title.redirectTarget;
if(not strona)then return;end;
return html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](strona.fullText);
else
mw.log("Nieprawidłowy format nazwy modułu przy uzykiwaniu, czy strona jest odnośnikiem do innej strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
end;
function p.UsuwanieKomentarzowe(tekst,__FUNKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"(<!%-%-.-%-%->)",__FUNKCJA_USUWANIA or "");
return tekst;
end;
function p.UsuwanieZnakoweKontrolneNiewidzialne(tekst,__FUKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"([^%C\n\t ])",__FUKCJA_USUWANIA or "");
return tekst;
end;
p["Forma wyrażenia po liczbie"] = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_table_frame=parametry_modul.TypeTable(frame);
local args=czy_table_frame and (frame.args or frame) or nil;
local argument_funkcji_modulu_1=czy_table_frame and (args[1] or "0") or (frame or "0");
local argument_funkcji_modulu_2=czy_table_frame and (args[2] or "zbiorów") or "zbiorów";
local argument_funkcji_modulu_3=czy_table_frame and (args[3] or "zbiór") or "zbiór";
local argument_funkcji_modulu_4=czy_table_frame and (args[4] or "zbiory") or "zbiory";
local bez_liczby=parametry_modul.CzyTak(args["bez liczby"]);
local specjalne_modul=require("Module:Specjalne");
local liczba_number=specjalne_modul["WydzielLiczbę"](argument_funkcji_modulu_1);
if(not liczba_number)then return "(błąd)";end;
local liczba_number=math.abs(liczba_number);
if(liczba_number==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;end;
if(liczba_number==1)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;end;
if(liczba_number<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
if(liczba_number<20)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
local reszta=math.fmod(liczba_number,20);
if(reszta==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
if(reszta==1)then
if(liczba_number<20)then
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;
else
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2
end;
end;
if(reszta<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;
end;
return p;
ts1gzwyy8mqo9okjqii8x7jhz5qjtzc
551370
551361
2026-08-11T14:49:52Z
Persino
2851
551370
Scribunto
text/plain
local p={};
p["Pierwszy niepusty"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local i=1;
local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](args,"test");
local licznik=1;
while true do
local test=args["test"..i];
local _i=args[i];
local zmienna=test or _i;
local czy_tak=parametry_modul.CzyTak(zmienna);
if(czy_tak)then
return (_i)and _i or "{{{"..i.."}}}";
end;
if(licznik>=liczba_elementow_w_tablicy_args)then return;end;
if(zmienna)then licznik=licznik+1;end;
i=i+1;
end;
end;
function p.NowikiParametr(frame)
local parametr=frame.args[1];
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
parametr=mw.ustring.gsub(parametr,"(.)",function(s)
return techniczne_dane_modul.tablica_szablonowa[s] or techniczne_dane_modul.tablica_linki[s] or techniczne_dane_modul.tablica_tagowa[s];
end);
return parametr;
end;
function p.EncodeParametr(frame)
local parametr=frame.args[1];
local szablonowe_dane_modul=require("Module:Szablonowe/dane");
parametr=mw.ustring.gsub(parametr,"(\")([^\"]+)(\")",function(a,str,b)
return a..mw.text.encode(str)..b;
end)
parametr=mw.ustring.gsub(parametr,"<(/?)([^<>]+)>",function(znak,str)
local znacznik=mw.ustring.match(str,"^(%a+)$") or mw.ustring.match(str,"^(%a+)%s+");
if(znacznik)then
znacznik=mw.getContentLanguage():lc(znacznik);
local czy_znacznik=szablonowe_dane_modul.tablica_html_mechanizmu_mediawiki[znacznik];
if(not czy_znacznik)then
return "&lt;"..znak..mw.text.encode(str).."&gt;";
end;
end;
end);
parametr=mw.text.decode(parametr);
parametr=mw.text.encode(parametr);
return parametr;
end;
p["PełnaNazwaOpisuModułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa");
local komunikat = mw.message.new('Scribunto-doc-page-name', '$1');
local zawartosc_komunikatu;
if(komunikat:exists())then
zawartosc_komunikatu=komunikat:plain();
zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu);
else
zawartosc_komunikatu="Module:$1/opis";
end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_wedlug_strony_komunikatu=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu);
local pelna_nazwa_strony_podanej_lub_aktualnej=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"]();
local wzor_pelnej_nazwy_strony=mw.ustring.gsub(pelna_nazwa_strony_wedlug_strony_komunikatu,"%$1",".-");
if(not mw.ustring.match(pelna_nazwa_strony_podanej_lub_aktualnej,"^"..wzor_pelnej_nazwy_strony.."$"))then
local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony_podanej_lub_aktualnej);
local przetworzona_nazwa_strony=p["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony);
local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony)
local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu);
return pelna_strona_opisu;
else
return pelna_nazwa_strony_podanej_lub_aktualnej;
end;
end;
p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local wiki_modul=require("Module:Wiki");
local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
local nazwy_modul=require("Module:Nazwy");
local uchwyt_przestrzeni_nazw;
if(czy_biezace_wiki)then
uchwyt_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,uchwyt="tak",};
else
uchwyt_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,uchwyt="tak",};
end;
if(uchwyt_przestrzeni_nazw)then
return "tak";
else
return;
end;
end;
p["WzórDanejPrzestrzeniNazw"] = function (frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end )
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1");
wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórPełnejNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona);
if(nazwa_przestrzeni~="")then
nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni);
end;
nazwa_strony=p["WzórNazwyStrony"](nazwa_strony);
return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony;
end;
p["TekstBezOdwołańDoParametrówWeWzorze"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%%%","%%%%%%");
tekst=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1");
return tekst;
end;
p["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%(%a+)","%%%%%1");
return tekst;
end;
p["PrzekształćWzórDoCzystegoTekstu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
return tekst;
end;
function p.CzyStronaIstniejeJejParametry(nazwa_strony_lub_uchwyt_strony,czy_zawartosc)
local uchwyt_strony;
local parametry_modul=require("Module:Parametry");
local czy_string=parametry_modul.TypeString(nazwa_strony_lub_uchwyt_strony);
local TempFunc=function(uchwyt_strony)
if(czy_zawartosc)then
return nil,nil,false;
else
return false;
end;
end;
if(czy_string)then
uchwyt_strony = mw.title.makeTitle('',nazwa_strony_lub_uchwyt_strony);
if(not uchwyt_strony)then return TempFunc();end;
else
uchwyt_strony=nazwa_strony_lub_uchwyt_strony;
if(not uchwyt_strony)then return TempFunc();end;
end;
local id=uchwyt_strony.namespace;
if((id==-1)or(id==-2))then
local czy_istnieje=uchwyt_strony and uchwyt_strony.exists or nil;
if(not czy_zawartosc)then
return czy_istnieje;
else
return uchwyt_strony,nil,czy_istnieje;
end;
else
local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
if(czy_zawartosc)then
if(not tekst_artykulu)then
return uchwyt_strony,nil,false;
end;
return uchwyt_strony,tekst_artykulu,true;
end;
if(not tekst_artykulu)then
return false;
end;
return true;
end;
end;
function p.PoliczZbiory(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local tekst=parametry_modul.CzyTak(args["tekst"]);
local liczba_istniejacych_zbiorow=0;
local tabela_uchwytow_stron={};
for _,nazwa_strony in ipairs(args) do
local uchwyt_strony,tekst_artykulu,czy_istnieje = p.CzyStronaIstniejeJejParametry(nazwa_strony,true);
tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,};
if((uchwyt_strony)and(czy_istnieje)and((not tekst)or((tekst)and(tekst_artykulu))))then
liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1;
end;
end;
return liczba_istniejacych_zbiorow,tabela_uchwytow_stron;
end;
function p.TransformacjaWzoru(ciag)
return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1");
end;
p["WyświetlajKodySpecjalne"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
local html_modul=require("Module:Html");
local i=html_modul.KodHTMLZnaku("&");
local hash=html_modul.KodHTMLZnaku("#");
local sr=html_modul.KodHTMLZnaku(";");
text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr);
text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr);
return text;
end;
function p.Wikikod(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
local nazwa_modulu=((parametry_modul["CzyTakCiąg"](przestrzen)) and (przestrzen..":") or "")..(nazwa or "Przykłowa strona");
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local tab_komentarze={};
local licznik_komentarze=1;
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,nazwa_modulu,nil,false,nil,true,nil,nil,nil,nil,function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nie ma takiej strony lub artykulu."}};
end;
tekst=p["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
local html_modul=require("Module:Html");
tekst=mw.ustring.gsub(tekst,"&(%a+);","&%1;");
tekst=mw.ustring.gsub(tekst,"&#(%d+);","&#%1;");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tab_szablonowa=techniczne_dane_modul.tablica_szablonowa;
local tab_linki=techniczne_dane_modul.tablica_linki;
local tab_tagow=techniczne_dane_modul.tablica_tagowa;
local tabela_wikitabelowa=techniczne_dane_modul.tabela_wikitabelowa;
local tab_zmienne=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe")
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local TekstBezKomentarzy=function(tekst,poczatek)
tekst=mw.ustring.gsub(tekst,(poczatek or "")..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE"),function(kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
return "";
end;
return nil;
end);
--tekst=parametry_modul["Odstępy"](tekst);
return tekst;
end;
local UsuwanieModyfikatoroweStron=function(nazwa,tabela_modyfikatorow)
if(not tabela_modyfikatorow)then return nazwa,"";end;
--local nazwa,komentarz=TekstBezKomentarzy(nazwa,"^[%s_]*");
local modyfikatory="";
repeat
local ile_zmieniono=0;
local __modyfikatory=nil;
nazwa=mw.ustring.gsub(nazwa,"^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE")..")",function(poczatek,kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
__modyfikatory=poczatek;
return "";
end;
end);
nazwa=mw.ustring.gsub(nazwa,"^(([%s_]*)(#?)([%s_]*)([^%s#:_]+)([%s_]*:))",function(calosc,a,b,c,d,e)
d=b..TekstBezKomentarzy(d)..":";
if(tabela_modyfikatorow[d])then
ile_zmieniono=ile_zmieniono+1;
modyfikatory=modyfikatory..(__modyfikatory or "")..calosc;
return "";
end;
return nil;
end);
if(ile_zmieniono==0)then
nazwa=(__modyfikatory or "")..nazwa;
end;
until (ile_zmieniono==0);
return nazwa,modyfikatory;
end;
local ZamieniajZnakiNaMikroSzablony=function(szablon,__funkcja)
szablon=mw.ustring.gsub(szablon,"(.)",function(znak)
local odpowied;
if(__funkcja)then
odpowied=__funkcja(znak);
else
odpowied=tab_linki[znak] or tab_szablonowa[znak];
end;
if(odpowied)then return odpowied;end;
return znak;
end);
return szablon;
end;
local CzyBezDwukropka=function(dwukropki)
return (not mw.ustring.match(dwukropki,":") and "tak" or "");
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local szablon_old=szablon;
szablon=TekstBezKomentarzy(szablon);
local pseudoszablon,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if((pseudoszablon)and(((tabela_modyfikatorow)and((szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))
or(tabela_modyfikatorow["#invoke:"])
or(tabela_modyfikatorow["int:"]))
and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
or((not tabela_modyfikatorow)and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
))then
local UstawianieLinkowe=function(szablon,ktore)
local SzablonStrona=function(szablon)
local strona=TekstBezKomentarzy(szablon);
strona=parametry_modul["Odstępy"](strona);
local nazwa,modyfikatory=UsuwanieModyfikatoroweStron(szablon,tabela_modyfikatorow);
strona=mw.ustring.gsub(strona,"=","{{=}}");
nazwa=mw.ustring.gsub(nazwa,"=","{{=}}");
return "{{s|oryginalna=tak|analiza=tak|"..strona
.."|nazwa="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..nazwa..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
.."|modyfikatory="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..modyfikatory..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
..(ktore and "|" or "}}");
end;
if(ktore)then
szablon=mw.ustring.gsub(szablon,"=","{{=}}");
szablon,ile=mw.ustring.gsub(szablon,"^{{([^|]-)|",function(szablon)
return SzablonStrona(szablon);
end);
else
szablon=mw.ustring.gsub(szablon,"^{{([^|]-)}}",function(szablon)
return SzablonStrona(szablon);
end);
end;
return szablon;
end;
if(mw.ustring.match(szablon_old,"|"))then
if(mw.ustring.match(szablon,"^{{[^|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."[^|]*|"))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,true);
end;
else
if(mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
if(pseudoszablon)then
if(((not tabela_modyfikatorow)or((not tabela_modyfikatorow["int:"])and(not tabela_modyfikatorow["#invoke:"])))and(tab_zmienne(pseudoszablon)))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,false);
end;
else
return UstawianieLinkowe(szablon_old,false);
end;
end;
else
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
elseif(obiekt=="LINKW")then
local __szablon=TekstBezKomentarzy(szablon);
local __dwukropki,__strona=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)%]%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)%]%]$");
return "{{l|"..strona.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}"
end;
else
local __dwukropki,__strona,__nazwa=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)|(.*)%]%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)|(.*)%]%]$");
return "{{l|"..strona.."|"..nazwa.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}";
end;
end;
elseif(obiekt=="LINKZ")then
local __szablon=TekstBezKomentarzy(szablon);
local __strona=mw.ustring.match(__szablon,"^%[%s*(%S+)%s*%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s*)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
else
local __strona,__nazwa=mw.ustring.match(__szablon,"^%[(%s*%S+)(%s+.-)%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s+.-)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
end;
elseif(obiekt=="ZMIENNA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="NOWIKI")
or(obiekt=="PRE")
or(obiekt=="MATH")
or(obiekt=="ŹRÓDŁO")
or(obiekt=="GALERIA")
or(obiekt=="MAPAOBRAZU")
or(obiekt=="PUDEŁKOWEJŚCIA")
)then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_linki[znak] or tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="QUIZ")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="ZNACZNIK")or(obiekt=="INCLUDE"))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=(znak~="\"")and tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="ATRYBUTY")then
szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("(UCIECZKI)"),function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
return szablon;
end);
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="WIKITABELA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tabela_wikitabelowa[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="INNEPRE")then
--szablon=mw.ustring.gsub(szablon,"^[^%S\n]","&nbsp;");
return szablon;
else
return szablon;
end;
end);
tekst=frame:getParent():preprocess(tekst);
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),function(kod)
kod=tonumber(kod);
local komentarz=tab_komentarze[kod];
komentarz=mw.ustring.gsub(komentarz,"^<!%-%-(.-)%-%->$",function(zawartosc)
return "<!--"..zawartosc.."-->";
end);
return komentarz;
end);
return tekst;
end;
p.WikikodStrony = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
if(not parametry_modul.CzyTak(nazwa))then return;end;
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or false;
if(not text)then return;end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
return text;
end;
function p.LuaSubst(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args[1] or args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
local inkludowany=parametry_modul.CzyTak(args["inkludowana"]);
if(inkludowany)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
else
local dokumentacja=parametry_modul.CzyTak(args["dokumentacja"]);
if(dokumentacja)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","%1");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","");
end;
end;
return tekst;
end;
p["LuaSurowySzablonSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
---
---
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,nil,
function(szablon,obiekt,kod,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
nil,nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end;
if(nazwa_szablonu=="Moduł:Ramka")then
local Funkcja=tabela_parametrow_szablonu[true];
if((not Funkcja)or(Funkcja~="Szablon"))then return;end;
local pelna_nazwa_szablonu=tabela_parametrow_szablonu["Nazwa"];
if(not pelna_nazwa_szablonu)then return;end;
pelna_nazwa_szablonu="Szablon:"..pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,pelna_nazwa_szablonu,nil,false,nil,true,true);
if(not tekst)then return;end;
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe");
tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
return;
end,
function(szablon,obiekt,kod,tekst)
if(obiekt=="ZMIENNA")then
local zmienna;local wartosc_domyslna;
zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$");
if(not zmienna)then
zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$");
end;
zmienna=mw.text.trim(zmienna);
local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna];
if(wartosc_zmiennej)then
return wartosc_zmiennej;
end;
end;
end,nil,nil,nil,nil,
function(tekst_artykulu,tab_element)
return nil,true,nil,true;
end,
function(nazwa)
return true;
end);
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul);
return tekst;
end;
end);
if(wynik)then return wynik;end;
end;
return;
end,nil,nil,nil,nil,
function(tekst_artykulu,tab_element)
return nil,true,nil,true;
end,
function(nazwa)
return true;
end);
local specjalne_modul=require("Module:Specjalne");
local tab_modyfikatory={["#if:"]=true,["#ifeq:"]=true,["#ifexist:"]=true,["#ifexpr:"]=true,};
local tab_mediawiki=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tabela_zmiennych={["site"]=true;};
local tablica_danych_parametrow_szablonu_strony={};
local function UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon)
local ile=0;
local szablon=mw.ustring.gsub(szablon,"({{{.+}}})",function(zmienna)
local numerowana=mw.ustring.match(zmienna,"^{{{%s*(%d+)%s*|");
if(numerowana)then
local ile2=0;
zmienna=mw.ustring.gsub(zmienna,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
ile=ile+1;
ile2=ile2+1;
return a..c;
end;
end);
return (ile2>0)and zmienna or nil;
end;
end);
return szablon,ile;
end;
local function UsuwaniePseudoSzablonowe(szablon)
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tab_mediawiki(nazwa_szablonu))then
return "";
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
end;
return nil, true;
end);
return szablon;
end;
local function PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tabela_modyfikatorow)then
for name,value in pairs(tabela_modyfikatorow)do
if(tab_modyfikatory[name])then
local warunek,dalej=mw.ustring.match(szablon,"^{{([^{}|]+)(.-)$");
if(warunek)then
local iterator=szablonowe_modul.IteratorSzablonowyZakodowanegoTekstu(nil,dalej,nil,tablica_analizy_obiektow_strony_dany_modul);
local czy_usunac_kreski_pionowe=false;
for szablon_dalej,obiekt_dalej,kod_dalej in iterator do
if(obiekt_dalej=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon_dalej,tablica_danych_parametrow_szablonu_strony,kod_dalej,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((mw.ustring.match(nazwa_szablonu,"^Infobox .*$"))or(mw.ustring.match(nazwa_szablonu,"^Link%u")))then
return true;
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
elseif(obiekt_dalej=="LINKW")then
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon_dalej);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
end;
end;
if(czy_usunac_kreski_pionowe)then
warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
end);
return "{{"..warunek..dalej;
else
local warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul);
return "{{"..warunek..dalej;
end;
end;
end;
end;
end;
end;
local function PlikowePrzetwarzanie(szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieDivowe(szablon,obiekt,kod)
local szablon,ile=UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
return wynik;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieSzablonowe(szablon,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local infobox=mw.ustring.match(nazwa_szablonu,"^Infobox .*$");
local link=mw.ustring.match(nazwa_szablonu,"^Link%u");
if((infobox)or(link))then
if((link)and(not infobox))then
szablon="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
end;
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod ,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return nil;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(((infobox)and(b==""))or((link)and((tonumber(a1))or(tabela_zmiennych[a1]))))then
return a..c;
end;
end);
return szablon;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
end;
return szablon;
end);
return szablon;
end;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
return wynik;
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
szablon=PrzetwarzanieSzablonowe(szablon,obiekt,kod);
if(szablon)then return szablon;end;
elseif(obiekt=="ZMIENNA")then
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
else
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon);
if(wynik)then
local spanramka="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
return spanramka;
end;
end;
end;
return szablon;
end);
return tekst;
end;
function p.NowaLinia(frame)
return "\n";
end;
function p.Nowiki(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local PobierzParametr=parametry_modul.PobierzParametr(args);
local tekst=PobierzParametr("tekst") or PobierzParametr(1);
local sprawdz_modul=require("Module:Sprawdź");
tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},}
tekst=mw.ustring.gsub(tekst,"([&<>={}|!%+%-%*;:#\"\'%[%]/\\])",function(znak)
return "&#"..mw.ustring.byte(znak)..";";
end);
return tekst;
end;
function p.FunkcjaLua(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local modul=require("Module:"..(args[1] or args["moduł"]));
if(modul)then
if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then
local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,})
return modul[args[2] or args["nazwa"] or args["funkcja"]](args2);
end;
end;
end;
p["RozwińSzablonWzględemPodanychParametrów"] = function (frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame)
local PobierzParametr=parametry_modul.PobierzParametr(args);
local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or "Nazwa strony";
local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template";
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or nil;
if(not text)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Strona nie istnieje lub nie ma zawartości."}};
end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
local bezkluczy={
["Nazwa strony"]=true,
["Nazwa"]=true,
["Miano przestrzeni nazw"]=true,
["Przestrzeń"]=true,
["wyspecjalizowana"]=true,
["nie rozwiń"]=true,
};
local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy);
local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab};
text=parametry_modul.CzyTak(frame.args["nie rozwiń"]) and text or frame2:preprocess(text);
return text;
end;
p["LiczbaBajtówCiąguDoNormy"] = function(frame)
local str=frame.args[1] or frame.args["ciąg"];
local ile=tonumber(frame.args[2] or frame.args["norma"]);
if(not ile)then return #str;end;
if(#str<=ile)then
return #str;
end;
return nil;
end;
p["LiczbaStronJakoPozycjeDanejKategorii"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria";
local kat={
["subcats"]=true,
["files"]=true,
["pages"]=true,
}
local typ=args["typ"];
typ=(typ and kat[args["typ"]]) and args["typ"] or "all";
local nazwy_modul=require("Module:Nazwy");
kategoria=nazwy_modul["NAZWASTRONY"](kategoria);
return mw.site.stats.pagesInCategory(kategoria,typ);
end;
p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"] = function(frame,tablica_danych_parametrow_szablonu_strony,kod)
----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony;
end;
end;
end;
---
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local adres_wzgledny=PobierzParametr(1) or PobierzParametr("względny");
if(not mw.ustring.match(adres_wzgledny,"/"))then return adres_wzgledny;end;
local adres_biezacy=PobierzParametr(2) or PobierzParametr("bieżący");
local adres;
local dwukropek;
if(mw.ustring.match(adres_wzgledny,"^[%s_]*/"))then
if(adres_biezacy)then
adres_biezacy,dwukropek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy..adres_wzgledny;
else
return nil;
end;
else
if((mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*%.[%s_]*/")))then
if(adres_biezacy)then
adres_biezacy,dwukrowek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy.."/"..adres_wzgledny;
else
return nil;
end;
else
adres_wzgledny,dwukropek=mw.ustring.gsub(adres_wzgledny,"^[%s_]*:","");
adres=adres_wzgledny;
end;
end;
if(adres~="")then
while((mw.ustring.match(adres,"/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*/")))do
adres=mw.ustring.gsub(adres,"/[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/+","/");
adres=mw.ustring.gsub(adres,"^/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"^[^/]*/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
adres=mw.ustring.gsub(adres,"/([^/]*)/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
end;
adres=mw.ustring.gsub(adres,"[%s_]*/[%s_]*","/");
adres=mw.ustring.gsub(adres,"^[%s_]*/+","");
adres=mw.ustring.gsub(adres,"[%s_]*/+","/");
adres=mw.ustring.gsub(adres,"/+[%s_]*$","");
adres=mw.ustring.gsub(adres,"^[%s_]*","");
adres=mw.ustring.gsub(adres,"[%s_]*$","");
adres=mw.ustring.gsub(adres,"[%s_]+"," ");
end;
local wynik=(((dwukropek)and(dwukropek>0)) and ":" or "")..adres;
-----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-1])then tablica_danych_parametrow_szablonu_strony[-1]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony=wynik;
end;
-----
return wynik;
end;
function p.PrzekierowanieDoStrony(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_modulu=PobierzParametr(1);
local html_modul=require("Module:Html");
local pudelko_modul=require("Module:Pudełko");
nazwa_modulu=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_modulu);
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_modulu);
if(czy_nazwa_niepoprawna)then
mw.log("Niepoprawna nazwa modulu strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
local title=mw.title.makeTitle('',nazwa_modulu);
if(title)then
local strona=title.redirectTarget;
if(not strona)then return;end;
return html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](strona.fullText);
else
mw.log("Nieprawidłowy format nazwy modułu przy uzykiwaniu, czy strona jest odnośnikiem do innej strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
end;
function p.UsuwanieKomentarzowe(tekst,__FUNKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"(<!%-%-.-%-%->)",__FUNKCJA_USUWANIA or "");
return tekst;
end;
function p.UsuwanieZnakoweKontrolneNiewidzialne(tekst,__FUKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"([^%C\n\t ])",__FUKCJA_USUWANIA or "");
return tekst;
end;
p["Forma wyrażenia po liczbie"] = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_table_frame=parametry_modul.TypeTable(frame);
local args=czy_table_frame and (frame.args or frame) or nil;
local argument_funkcji_modulu_1=czy_table_frame and (args[1] or "0") or (frame or "0");
local argument_funkcji_modulu_2=czy_table_frame and (args[2] or "zbiorów") or "zbiorów";
local argument_funkcji_modulu_3=czy_table_frame and (args[3] or "zbiór") or "zbiór";
local argument_funkcji_modulu_4=czy_table_frame and (args[4] or "zbiory") or "zbiory";
local bez_liczby=parametry_modul.CzyTak(args["bez liczby"]);
local specjalne_modul=require("Module:Specjalne");
local liczba_number=specjalne_modul["WydzielLiczbę"](argument_funkcji_modulu_1);
if(not liczba_number)then return "(błąd)";end;
local liczba_number=math.abs(liczba_number);
if(liczba_number==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;end;
if(liczba_number==1)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;end;
if(liczba_number<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
if(liczba_number<20)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
local reszta=math.fmod(liczba_number,20);
if(reszta==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
if(reszta==1)then
if(liczba_number<20)then
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;
else
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2
end;
end;
if(reszta<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;
end;
return p;
8jbn3ei1z4w77ylcjwis1v0kzogn1eb
Moduł:Pudełko/Pomocne
828
56499
551366
542058
2026-08-11T14:33:35Z
Persino
2851
551366
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,kod_przestrzen_normalna_przedmiotowa_lub_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(kod_przestrzen_normalna_przedmiotowa_lub_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(kod_przestrzen_normalna_przedmiotowa_lub_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(kod_przestrzen_normalna_przedmiotowa_lub_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
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
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 pudelko_modul=require("Module:Pudełko");
local tab_nazwa={
["przedmiotowa"]="Nazwa przedmiotowej przestrzeni nazw",
["dyskusja"]="Nazwa przestrzeni nazw",
};
local nazwa_przestrzeni_nazw=pudelko_modul[tab_nazwa[typ]](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
if(nazwa_przestrzeni_nazw=="")then
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local tab_nazwa={
["przedmiotowa"]="PRZEDMIOTOWAPRZESTRZEŃ",
["dyskusja"]="PRZESTRZEŃDYSKUSJI",
};
nazwa_przestrzeni_nazw=nazwy_modul[tab_nazwa[typ]]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
if(typ=="dyskusja")then
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
nazwa_przestrzeni_nazw=nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
end;
return nazwa_przestrzeni_nazw;
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=tonumber(numer_jednostki) or 0;
local pf=frame.getParent and 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);
if(typ)then
local typ,ile=mw.ustring.gsub(typ,"^(%S+)(%s+)(dyskusji)",function(strona,spacja,dyskusji)return strona;end);
local nazwa_przestrzeni_nazw=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true);
if(nazwa_przestrzeni_nazw)then
local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i);
if((czy_dyskusja)or(ile>0))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;
return 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);
local function TempFunc(typ_jednostki,nazwa_przestrzeni_nazw)
if(
(kod_liczbowy_przestrzeni_nazw==2)
or(
(kod_liczbowy_przestrzeni_nazw==0)
and(
typ and (p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i))
or(
(nazwa_przestrzeni_nazw)
and (mw.ustring.match(nazwa_przestrzeni_nazw,"^Talk$") or mw.ustring.match(nazwa_przestrzeni_nazw," talk$"))
or nil
)
)
)
)then
if(not mw.ustring.match(typ_jednostki,"^(%S+)(%s+)(dyskusji)"))then
typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)",function(strona)
return strona.." dyskusji";
end);
end;
return typ_jednostki;
elseif(kod_liczbowy_przestrzeni_nazw==1)then
typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)(%s+)(dyskusji)",function(strona,spacje,dyskusji)
return strona;
end);
return typ_jednostki;
end;
return typ_jednostki;
end;
if((not analiza)and(typ))then
if(typ~="")then
uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i);
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
return TempFunc(typ,nil);
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,nil,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,1,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 indywidua 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(norm_przed_lub_dyskusji=="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{[1]=pagename,tekst=true,};
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(norm_przed_lub_dyskusji,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
else
return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
end;
elseif(norm_przed_lub_dyskusji=="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=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..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=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..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
typ_jednostki=TempFunc(typ_jednostki,nazwa_przestrzeni_nazw);
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 TempFunc(typ_jednostki,nazwa_przestrzeni_nazw);
end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc)
local nazwa_przestrzeni_fun,nazwa_jednostki_fun;
if(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==0)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==1)then
nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==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
local function TempFunc()
return ((not i)or(i==0));
end;
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local czy_i_0=TempFunc();
local nazwa_przestrzeni_nazw=(czy_i_0)
and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i)
or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i);
local nazwa_jednostki=(czy_i_0)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 czy_i_0=TempFunc();
local nazwa_przestrzeni_nazw=(czy_i_0)
and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i)
or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
local czy_i_0=TempFunc();
return (czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
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,czy_uwzglednic_alternatywna_nazwe,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,czy_uwzglednic_alternatywna_nazwe,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,czy_uwzglednic_alternatywna_nazwe,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,czy_uwzglednic_alternatywna_nazwe,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 pf.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
local tab_parametry={nazwa=nazwa_przestrzeni_nazw,};
if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end;
nazwa_przestrzeni_nazw=nazwy_modul.Np(tab_parametry);
else
local tab_parametry={nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end;
nazwa_przestrzeni_nazw=nazwy_modul.NpDane(tab_parametry);
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((not typ)or(typ=="przedmiotowa"))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;
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;
mh7znlo0xtw6ctoi9wtm2eajqfg9ixb
Szablon:LinkProjektUstęp
10
56678
551504
468891
2026-08-11T22:02:29Z
Persino
2851
551504
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|Project|Wikibooks}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
tpc0obxpg9zyxulzqqsgmadi2acjts2
Szablon:LinkSzablonUstęp
10
56679
551501
468889
2026-08-11T22:00:11Z
Persino
2851
551501
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|Template|Szablon}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
4px2hlkr71sv4iwdo0cd4mpcqvmfbnz
Szablon:LinkKategoriaUstęp
10
56680
551505
468892
2026-08-11T22:03:11Z
Persino
2851
551505
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|Category|Kategoria}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
p2x28surd36n472qkpy64qsd4jf9dib
Szablon:LinkPediaProjektUstęp
10
56681
551498
475758
2026-08-11T21:53:24Z
Persino
2851
551498
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw=Wikipedia|klucz projektu=w|bez argumentów szablonu=wyświetlana;w;4;klucz projektu;k;3;kod języka;kj;kod projektu;kp;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
61mvpzm9n9xfqhfd9ymu2cyscb2rv33
Szablon:LinkUżytkownikUstęp
10
56682
551506
468893
2026-08-11T22:03:55Z
Persino
2851
551506
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|User|Wikipedysta}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
bh2g43slek4ad95nk2na7s3bar8w3rx
Szablon:LinkGłównaUstęp
10
56683
551499
468887
2026-08-11T21:58:53Z
Persino
2851
551499
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw=(main)|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
av2if9bx7fhg2uqdn739pk3d9r3qk9s
Szablon:LinkPomocUstęp
10
56684
551503
468890
2026-08-11T22:01:56Z
Persino
2851
551503
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|Help|Pomoc}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
gjxxxgsyxwe495a570um9uzn3z66rxl
Szablon:LinkPediaGłównaUstęp
10
56685
551495
468898
2026-08-11T21:51:41Z
Persino
2851
551495
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw=(main)|klucz projektu=w|bez argumentów szablonu=wyświetlana;w;4;klucz projektu;k;3;kod języka;kj;kod projektu;kp;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
sjp4r1yl1ak0uomt73ltei3hy9ubs3r
Szablon:LinkPediaPomocUstęp
10
56686
551497
468900
2026-08-11T21:52:46Z
Persino
2851
551497
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw=Pomoc|klucz projektu=w|bez argumentów szablonu=wyświetlana;w;4;klucz projektu;k;3;kod języka;kj;kod projektu;kp;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
30revdnfqw630f11kqsmo7vihq7n1h9
Szablon:LinkWikijuniorUstęp
10
56738
551500
468888
2026-08-11T21:59:31Z
Persino
2851
551500
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw=Wikijunior|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
bzuq03kwsuy8x2vc2h8o6ykfrjjk91d
Szablon:LinkPediaSzablonUstęp
10
57553
551496
468899
2026-08-11T21:52:13Z
Persino
2851
551496
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw=Szablon|klucz projektu=w|bez argumentów szablonu=wyświetlana;w;4;klucz projektu;k;3;kod języka;kj;kod projektu;kp;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
hp2jph88hct8oo6pd4ikrb5jmj4x03y
Moduł:StronicowyParser/Potrzebne
828
58155
551368
551125
2026-08-11T14:36:33Z
Persino
2851
551368
Scribunto
text/plain
local p={};
function p.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw_spisu_rzeczy_szablon,kod_num)
local numer_parametru;
if(not tabela_nazw_spisu_rzeczy_szablon.numer_parametru)then
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_spisu_rzeczy;
if(not kod_num)then
tab_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu;
else
tab_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_linkowe_spisu_rzeczy;
end;
numer_parametru=tab_spisu_rzeczy[nazwa_szablonu];
if(not numer_parametru)then return nil;end;
tabela_nazw_spisu_rzeczy_szablon.numer_parametru=numer_parametru;
else
numer_parametru=tabela_nazw_spisu_rzeczy_szablon.numer_parametru;
end;
local indeks=numer_parametru[numer];
for p,_ in ipairs(indeks) do
local parametr=tabela_parametrow_szablonu[indeks[p]];
if(parametr)then
return parametr;
end;
end;
return nil;
end;
function p.LiczonyHNumer()
local tab={};
local h_numer_zapamietane=nil;
--local ostatnie_poprz=nil;
return function(h_numer,h_numer_nowe)
if(h_numer==0)then
if(#tab>0)then
local h_numer_poprz,ostatnie_poprz=unpack(tab[#tab]);
return ostatnie_poprz;
end;
return nil;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
local ostatnie;---=tab[h_numer];
local max_h_numer=nil;local min_h_numer=nil;
local ostatnie_max;local ostatnie_min;local ostatnie_ost;local ostatnie_ost_prawda=true;
for i=#tab,1,-1 do
----
local h_numer_pos,ostatnie_pos=unpack(tab[i]);
if(ostatnie_ost_prawda)then
if(h_numer_pos==h_numer)then
ostatnie_ost=ostatnie_pos;
break;
end;
ostatnie_ost_prawda=nil;
end;
----
if((h_numer>h_numer_pos)and((max_h_numer or 0)<h_numer_pos))then
if((h_numer_pos or 0)<=(max_h_numer or h_numer))then
ostatnie_max=ostatnie_pos;
max_h_numer=h_numer_pos;
end;
end;
end;
if(ostatnie_ost)then
ostatnie=ostatnie_ost;
else
ostatnie=(ostatnie_max or 0)+1;
end;
local h_numer_poprz,ostatnie_poprz=nil,nil;
if(#tab>0)then
h_numer_poprz,ostatnie_poprz=unpack(tab[#tab]);
end;
if(ostatnie>(ostatnie_poprz or 0)+1)then
ostatnie=(ostatnie_poprz or 0)+1;
end;
table.insert(tab,{h_numer,ostatnie,});
if(h_numer_nowe)then
local roznica=h_numer_nowe-ostatnie;
if(roznica==0)then
return ostatnie;
end;
local tab2={};
for i,tabs in pairs(tab)do
local name,value=unpack(tabs);
tab2[i]={name,value+roznica,};
end;
tab=tab2;
return h_numer_nowe;
end;
return ostatnie;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==0))then return nil;end;
if((numer)and(numer<1)or(numer~=math.floor(numer)))then return nil;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryKonteneraWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
local html_modul=require("Module:Html");
if(nazwa_jednostki)then
local tabela_nazw_adresu={};
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true,tabela_nazw_adresu);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki,true,tabela_nazw_adresu);
end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=((nazwa_przestrzeni)and ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "") or nazwy_modul["NAZWAPRZESTRZENI"]());
local nazwa_jednostki=(((nazwa_jednostki)and(nazwa_jednostki~=""))and nazwa_jednostki or nazwy_modul["NAZWASTRONY"]());
local pelna_nazwa_jednostki=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
pelna_nazwa_jednostki=html_modul.DecodeHtml(pelna_nazwa_jednostki,true);
pelna_nazwa_jednostki=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](pelna_nazwa_jednostki);
---
local techniczne_modul=require("Module:Techniczne");
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu);
pelna_nazwa_jednostki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_jednostki,[2]=nazwa_modulu,};
pelna_nazwa_jednostki=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_jednostki);
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_jednostki);
if(strona)then pelna_nazwa_jednostki=strona;end;
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_jednostki);
self.nazwa_przestrzeni_woluminu=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_jednostki);
self.nazwa_woluminu=(self.nazwa_przestrzeni_woluminu~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_jednostki) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_jednostki);
self.nazwa_podstrony_woluminu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_jednostki);
self.parametry_woluminu=false;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[self.nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return;end;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[self.nazwa_przestrzeni_woluminu];
if(not tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki)then return;end;
local tab_lista_artykulow_w_ksiazce=tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki[self.nazwa_woluminu];
if(not tab_lista_artykulow_w_ksiazce)then
return;
end;
local oryginalna_ksiazka=tab_lista_artykulow_w_ksiazce.adres_woluminu_bazowego_spisu_rzeczy;
if(oryginalna_ksiazka)then
self.nazwa_przestrzeni=oryginalna_ksiazka[1];
self.nazwa_przestrzeni_woluminu=oryginalna_ksiazka[2];
self.nazwa_woluminu=oryginalna_ksiazka[3];
end;
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_przestrzeni_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
self.nazwa_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
self.nazwa_podstrony_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
self.parametry_woluminu=true;
end;
end;
function p.TabelaListyStronWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki,czy_podana,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
local self_tab;
if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki)or(not nazwa_artykulu))then
if((self.parametry_woluminu)and((not tabela_listy_danych_analizy_ksiazki)or(tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu)))then
if(not tabela_listy_danych_analizy_ksiazki)then
self_tab,tabela_listy_danych_analizy_ksiazki=p.Self(self,tabela_listy_danych_analizy_ksiazki);
end;
if((not self_tab)or((self_tab)and(tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu)))then
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki;
local tab_lista_artykulow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
local tab_lista_zmiennych_w_artykule=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu;
return tab_lista_artykulow_w_ksiazce.spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule;
end;
end;
end;
if((not self_tab)or(not tabela_listy_danych_analizy_ksiazki))then
self_tab,tabela_listy_danych_analizy_ksiazki=p.Self(self,tabela_listy_danych_analizy_ksiazki);
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni or((not czy_podana) and self_tab.nazwa_przestrzeni_podana or self_tab.nazwa_przestrzeni)];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then
return nil,nil,nil,nil,nil;
end;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki or((not czy_podana) and self_tab.nazwa_przestrzeni_woluminu_podana or self_tab.nazwa_przestrzeni_woluminu)];
if(not tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki)then
return nil,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,nil,nil,nil;--[[--Do poprawienia--]]
end;
local tab_lista_artykulow_w_ksiazce=tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki or((not czy_podana) and self_tab.nazwa_woluminu_podana or self_tab.nazwa_woluminu)];
if(not tab_lista_artykulow_w_ksiazce)then
return nil,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,nil,nil;
end;
local tab_lista_zmiennych_w_artykule=tab_lista_artykulow_w_ksiazce.lista_podstron_woluminu and tab_lista_artykulow_w_ksiazce.lista_podstron_woluminu[nazwa_artykulu or ((not czy_podana) and self_tab.nazwa_podstrony_woluminu_podana or self_tab.nazwa_podstrony_woluminu)] or nil;
return tab_lista_artykulow_w_ksiazce.spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.Self(self,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local self_tab={};
self_tab.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self_tab.nazwa_przestrzeni_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
self_tab.nazwa_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
self_tab.nazwa_podstrony_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
self_tab.nazwa_przestrzeni_podana=self.nazwa_przestrzeni;
self_tab.nazwa_przestrzeni_woluminu_podana=self.nazwa_przestrzeni_woluminu;
self_tab.nazwa_woluminu_podana=self.nazwa_woluminu;
self_tab.nazwa_podstrony_woluminu_podana=self.nazwa_podstrony_woluminu;
return self_tab,tabela_listy_danych_analizy_ksiazki;
end;
function p.KompletnaNazwaWoluminu(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..((self.nazwa_przestrzeni_woluminu~="")and (self.nazwa_przestrzeni_woluminu.."/") or "")..self.nazwa_woluminu
end;
function p.NazwaPodStronyWoluminu(self,frame)
return self.nazwa_podstrony_woluminu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki_w_bazie,przekierowanie_w_bazie,naglowek,ksiazka,analizowana)
local stronicowyparser_modul=require("Module:StronicowyParser");
local nazwy_modul=require("Module:Nazwy");
local czy_z_nazwa_ksiazki=ksiazka and (not analizowana) and pelna_nazwa_ksiazki_w_bazie;
local pelna_nazwa_ksiazki=(czy_z_nazwa_ksiazki and (pelna_nazwa_ksiazki_w_bazie[4])) and nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki_w_bazie[1],pelna_nazwa_ksiazki_w_bazie[2],pelna_nazwa_ksiazki_w_bazie[3],"") or nil;
local artykul=czy_z_nazwa_ksiazki and not pelna_nazwa_ksiazki_w_bazie[5] and p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,naglowek) or artykul;
return ksiazka and ((((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki~=""))
and(pelna_nazwa_ksiazki)or stronicowyparser_modul["AktualnaKsiążka"](mw.getCurrentFrame())).."/"..artykul)
or artykul;
end;
function p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki)
p:AnalizujArgumentySzablonu(frame);
p:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce_spis=p:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce_spis)then return nil;end;
local tab_naglowkow={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce_spis)do
local rozdzial=tab_lista[1][1];
local poziom_rozdzialu=tab_lista[1][2][1];
local czy_centrowany=tab_lista[1][2][4];
if((poziom_rozdzialu)and(poziom_rozdzialu>0)and(not czy_centrowany))then
table.insert(tab_naglowkow,rozdzial);
end;
end;
self.tablica_napisowa_wprowadzenia_tekstu=tab_naglowkow;
return tab_naglowkow;
end;
function p.LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(self,frame,tabela_listy_danych_analizy_ksiazki)
self.numer_pomiedzy_napisu_wprowadzenia_tekstu=tonumber(frame.args[1]) or 1;
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
if(not self.tablica_napisowa_wprowadzenia_tekstu)then return nil;end;
self.len_pomiedzy_napisu_wprowadzenia_tekstu=self.len_pomiedzy_napisu_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
self.reszta_pomiedzy_napisu_wprowadzenia_tekstu=math.fmod(self.numer_pomiedzy_napisu_wprowadzenia_tekstu,self.len_pomiedzy_napisu_wprowadzenia_tekstu-2);
local artykul=self.tablica_napisowa_wprowadzenia_tekstu[self.reszta_pomiedzy_napisu_wprowadzenia_tekstu+2];
return artykul;
end;
function p.LosowyNapisProwadzeniaTekstuWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)
self.numer_losowy_napis_wprowadzenia_tekstu=tonumber(frame.args[1]) or 1;
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
if(not self.tablica_napisowa_wprowadzenia_tekstu)then return nil;end;
self.len_pomiedzy_napisu_wprowadzenia_tekstu=self.len_pomiedzy_napisu_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
self.reszta_losowy_napis_wprowadzenia_tekstu=math.fmod(self.numer_losowy_napis_wprowadzenia_tekstu,self.len_pomiedzy_napisu_wprowadzenia_tekstu);
local artykul=self.tablica_napisowa_wprowadzenia_tekstu[self.reszta_losowy_napis_wprowadzenia_tekstu+1];
return artykul;
end;
function p.PierwszyNapisWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
return self.tablica_napisowa_wprowadzenia_tekstu[1];
end;
function p.OstatniNapisWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
return self.tablica_napisowa_wprowadzenia_tekstu[#(self.tablica_napisowa_wprowadzenia_tekstu)];
end;
function p.LiczbaNapisowaWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
self.len_pomiedzy_napisu_wprowadzenia_tekstu=self.len_pomiedzy_napisu_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
return self.len_pomiedzy_napisu_wprowadzenia_tekstu;
end;
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)
local tab_naglowkow=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame);
local parametry_modul=require("Module:Parametry");
return parametry_modul.IteratorPoNumerowanychElementachTablicy(tab_naglowkow);
end;
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)
p:AnalizujArgumentySzablonu(frame);
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule;
if(not tab_lista_artykulow_w_ksiazce_spis)then
p:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
tab_lista_artykulow_w_ksiazce_spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=p:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
spis_tresci=tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu;
inne_spisy=tab_lista_artykulow_w_ksiazce.tab_inne_spisy;
dodatkowe_artykuly=tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu;
end;
if(not tab_lista_artykulow_w_ksiazce_spis)then return nil;end;
local args=p:Args();
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykulow=(not czy_naglowek) and {} or nil;
local tab_listy_artykulow={};
local tab_listy_artykulow_spis={};
local czy_inne_spisy=false;
local html_modul=require("Module:Html");
local nazwa_tabeli_danego_spisu_tresci=args["spis"];
if(nazwa_tabeli_danego_spisu_tresci)then
local techniczne_modul=require("Module:Techniczne");
nazwa_tabeli_danego_spisu_tresci=html_modul.DecodeHtml(nazwa_tabeli_danego_spisu_tresci,true);
nazwa_tabeli_danego_spisu_tresci=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_tabeli_danego_spisu_tresci);
nazwa_tabeli_danego_spisu_tresci=parametry_modul["Odstępy"]{[1]=nazwa_tabeli_danego_spisu_tresci,[2]="tak",};
nazwa_tabeli_danego_spisu_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"](nazwa_tabeli_danego_spisu_tresci,"");
local nazwa_ksiazki=p:KompletnaNazwaWoluminu(frame)
local nazwa_artykulu=nazwa_ksiazki.."/"..nazwa_tabeli_danego_spisu_tresci;
local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_artykulu);
if(strona)then
local nazwy_modul=require("Module:Nazwy");
nazwa_tabeli_danego_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
end;
local czy_dany_spis=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce_spis)do
local poziom_rozdzialu=tab_lista[1][2][1];
local nazwa_spisu=nil;
if(((m==1)and(not poziom_rozdzialu))or((m>0)and(poziom_rozdzialu)and(poziom_rozdzialu==1)))then
local spis=tab_lista[1]["spis"];
nazwa_spisu=spis and spis[1] or nil;
----
if(not nazwa_tabeli_danego_spisu_tresci)then
if(nazwa_spisu)then
if(not tab_listy_artykulow["spis"])then tab_listy_artykulow["spis"]={};end;
local spis_artykulow=tab_listy_artykulow["spis"];
spis_artykulow[nazwa_spisu]={};
tab_listy_artykulow_spis=spis_artykulow[nazwa_spisu];
czy_inne_spisy=true;
else
local dodatkowe=tab_lista[1]["dodatkowe"];
if(dodatkowe)then
tab_listy_artykulow["dodatkowe"]={};
tab_listy_artykulow_spis=tab_listy_artykulow["dodatkowe"];
czy_inne_spisy=true;
end;
end;
else
if(nazwa_spisu)then
if(nazwa_spisu==nazwa_tabeli_danego_spisu_tresci)then
czy_dany_spis=true;
else
if(czy_dany_spis)then
czy_dany_spis=nil;
break;
else
czy_dany_spis=nil;
end;
end;
end;
end;
end;
if((tab_lista[2])and((not nazwa_tabeli_danego_spisu_tresci)or((nazwa_tabeli_danego_spisu_tresci)and(czy_dany_spis))))then
local pomin_pozycje=true;
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if((not pomin_pozycje)or(not nazwa_spisu))then
local czy_table_baza_artykulu=p.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
----
artykul=p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(artykul,czy_naglowek);
----
if(czy_naglowek or (not tab_artykulow[artykul]))then
if(not czy_naglowek)then tab_artykulow[artykul]=true;end;
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil;
local pelna_nazwa_ksiazki=czy_table_baza_artykulu and artykul_w_bazie[1][4] or nil;
table.insert(tab_listy_artykulow_spis,(nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
end;
else
pomin_pozycje=false;
end;
end;
end;
end;
local stronicowyparser_modul=require("Module:StronicowyParser");
local parametry_modul=require("Module:Parametry");
--local spis_tresci,inne_spisy,dodatkowe_artykuly=nazwa_glownego_spisu,tab_inne_spisy,tab_dodatkowe_artykuly;
if((nazwa_tabeli_danego_spisu_tresci)or(((not inne_spisy)
or(not parametry_modul["CzySąElementyNumerowaneTablicy"](inne_spisy)))
and((not dodatkowe_artykuly)
or(not parametry_modul["CzySąElementyNumerowaneTablicy"](dodatkowe_artykuly)))
))then
local tablica_spisu_glownego;
if(not nazwa_tabeli_danego_spisu_tresci)then
if(czy_inne_spisy)then
local czy_table_spis_tresci=parametry_modul.TypeTable(spis_tresci);
local tab_listy_artykulow_spis=tab_listy_artykulow["spis"] or {};
tablica_spisu_glownego=tab_listy_artykulow_spis[czy_table_spis_tresci and spis_tresci[1] or spis_tresci];
else
tablica_spisu_glownego=tab_listy_artykulow_spis;
end;
else
tablica_spisu_glownego=tab_listy_artykulow_spis;
end;
local iter_glowny=parametry_modul.IteratorPoNumerowanychElementachTablicy(tablica_spisu_glownego);
return function()
local wartosc=iter_glowny();
if(not wartosc)then return nil;end;
local czy_table_wartosc=p.CzyTabelaStronyWoluminuSpisuRzeczy(wartosc);
local artykul=czy_table_wartosc and wartosc[1] or ((not czy_table_wartosc) and wartosc or nil);
local nazwa=czy_table_wartosc and wartosc[2] or nil;
local przekierowanie=czy_table_wartosc and wartosc[3] or nil;
local pelna_nazwa_ksiazki=czy_table_wartosc and wartosc[4] or nil;
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
end;
local wykorzystane_spisy={};
local iter_innych_spisow=parametry_modul.IteratorPoNumerowanychElementachTablicy(inne_spisy or {});
local czy_dodatkowe_zaanalizowane=false;
local function IteratorMain(wartosc,numer)
----
local tabela_spisu_spis=tab_listy_artykulow["spis"] or {};
local tabela_spisu=tabela_spisu_spis[wartosc];
if(tabela_spisu)then
if((wykorzystane_spisy)and(wykorzystane_spisy[wartosc]))then
tabela_spisu=nil;
else
wykorzystane_spisy[wartosc]=true;
end;
end;
local iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu or {});
----
local tak=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local wartosc=iter();
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
if(not wartosc)then
if(numer~=0)then
return nil;
else
local function InneSpisy()
--if(aa<10)then return nil;end;
local spis=iter_innych_spisow();
if(not spis)then
if(czy_dodatkowe_zaanalizowane)then return nil;end;
local tabela_spisu_spis=tab_listy_artykulow["dodatkowe"];
if((not tabela_spisu_spis)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_spisu_spis)))then return nil;end;
iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu_spis or {});
czy_dodatkowe_zaanalizowane=true;
wartosc=iter();
return true;
end;
local czy_table_spis=parametry_modul.TypeTable(spis);
local spis_artykul=czy_table_spis and spis[1] or spis;
if(not wykorzystane_spisy[spis_artykul])then
wykorzystane_spisy[spis_artykul]=true;
local tabela_spisu_spis=tab_listy_artykulow["spis"] or {};
local tabela_spisu=tabela_spisu_spis[spis_artykul];
if(tabela_spisu)then
iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu or {});
wartosc=iter();
if(not wartosc)then
return InneSpisy();
end;
else
return InneSpisy();
end;
else
return InneSpisy();
end;
return true;
end;
local koniec=InneSpisy();
if(not koniec)then return nil;end;
end;
end;
----
local czy_table_wartosc=p.CzyTabelaStronyWoluminuSpisuRzeczy(wartosc);
artykul=czy_table_wartosc and wartosc[1] or ((not czy_table_wartosc) and wartosc);
nazwa=czy_table_wartosc and wartosc[2] or nil;
przekierowanie=czy_table_wartosc and wartosc[3] or nil;
pelna_nazwa_ksiazki=czy_table_wartosc and wartosc[4] or nil;
----
artykul=p.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul);
----
tak=true;
iter2=IteratorMain(artykul,numer+1);
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
if(not tak)then
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=IterMain();
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
else
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=iter2();
if(not artykul)then
tak=nil;
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=IterMain();
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
else
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
end;
end;
return Iterator;
end;
local czy_table_spis_tresci=parametry_modul.TypeTable(spis_tresci);
return IteratorMain(czy_table_spis_tresci and spis_tresci[1] or spis_tresci,0);
end;
function p.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,co_ma_wykrywac)
local frame=mw.getCurrentFrame();
local nazwy_modul=require("Module:Nazwy");
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,nil,tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly);
for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do
if(pelna_nazwa_ksiazki)then
if(co_ma_wykrywac)then
if((pelna_nazwa_ksiazki[1]==nazwa_przestrzeni)and(pelna_nazwa_ksiazki[2]==nazwa_przestrzeni_ksiazki)and(pelna_nazwa_ksiazki[3]==nazwa_ksiazki))then
local czy_przekierowanie=pelna_nazwa_ksiazki[6];
if(czy_przekierowanie)then
local przekierowanie=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,false);
if(pelna_nazwa_ksiazki[5])then
if(nazwa_artykulu==przekierowanie)then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,1;
end;
else
if((nazwa_artykulu==przekierowanie))then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,2;
end;
end;
else
local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local ile,_=techniczne_modul.PoliczZbiory{[1]=nazwa_modulu,tekst=true,};
if(ile>0)then
return nazwa_artykulu,3;
else
return nazwa_artykulu,4;
end;
end;
end;
end;
else
if(not co_ma_wykrywac)then
local przekierowanie=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,false);
if(przekierowanie)then
if(nazwa_artykulu==przekierowanie)then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,1;
else
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
if(nazwa_artykulu==nazwa_artykulu_strony)then
return nazwa_artykulu_strony,2;
end;
end;
else
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
if(nazwa_artykulu==nazwa_artykulu_strony)then
return nazwa_artykulu,3;
end;
end;
end;
end;
end;
end;
function p.ObliczeniaInformacje(self,frame)
local iterator=p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return nil;end;
----
self.tab_artykul={};
----
for artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki in iterator do
table.insert(self.tab_artykul, (nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.UsuwanieElementowePoziomoweZTablicy(tablica,numer)
if(numer==0)then return tablica,0;end;
local s=0;
for i=#tablica,1,-1 do
local artykul=tablica[i][1];
local numer_artykulu_w_bazie=p.PoziomAdresu(artykul);
if(numer~=numer_artykulu_w_bazie)then
table.remove(tablica,i);
s=s+1;
end;
end;
return tablica,s;
end;
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)
local tab_artykul;local s;
if(numer>0)then
local parametry_modul=require("Module:Parametry");
tab_artykul=parametry_modul["KopiujTabelęElementów"](self.tab_artykul);
tab_artykul,s=p.UsuwanieElementowePoziomoweZTablicy(tab_artykul,numer);
else
tab_artykul=self.tab_artykul;
s=0;
end;
local numer_pomiedzy_artykul=tonumber(frame.args[1]) or 1;
local reszta_pomiedzy_artykul=math.fmod(numer_pomiedzy_artykul,#tab_artykul-2);
local artykul=tab_artykul[reszta_pomiedzy_artykul+2];
return artykul;
end;
function p.LosowaStronaWoluminu(self,frame,numer)
local tab_artykul;local s;
if(numer>0)then
local parametry_modul=require("Module:Parametry");
tab_artykul=parametry_modul["KopiujTabelęElementów"](self.tab_artykul);
tab_artykul,s=p.UsuwanieElementowePoziomoweZTablicy(tab_artykul,numer);
else
tab_artykul=self.tab_artykul;
s=0;
end;
local numer_pomiedzy_artykul=tonumber(frame.args[1]) or 1;
local reszta_pomiedzy_artykul=math.fmod(numer_pomiedzy_artykul,#tab_artykul);
local artykul=tab_artykul[reszta_pomiedzy_artykul+1];
return artykul;
end;
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local szablonowe_modul=require("Module:Szablonowe");
local function RozwinSzablon(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
if((szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))
or (szablonowe_modul.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow))
)then
return nil,false;
end;
local nazwa_szablonu_temp,czy_powodzenie=p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true);
if(not czy_powodzenie)then
return nil,false;
end;
nazwa_szablonu=nazwa_szablonu_temp or nazwa_szablonu;
return nazwa_szablonu,true;
end;
nazwa_szablonu=RozwinSzablon(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
return nazwa_szablonu;
end;
function p.TOCSilnik(frame,lista_elementow_spisu_tresci, atrybuty,bez_przypisow)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
local nazwa_strony_z_naglowkami=lista_elementow_spisu_tresci.nazwa_strony or "";
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
local czy_w_tym_szablony=mw.ustring.match(element_w_tablicy[1][1],"{{[^{}]+}}");
local adres=element_w_tablicy[1][1];
local naglowek=element_w_tablicy[1][2];
local czy_przypis=(bez_przypisow and stronicowyparser_obiekty_modul.napisy_wprowadzenia_tekstu_przypisowych[naglowek] or nil);
if(czy_w_tym_szablony)then
local specjalne_modul=require("Module:Specjalne");
adres=specjalne_modul["PrzetwórzNagłówek"](adres,true);
naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false);
end;
adres=nazwa_strony_z_naglowkami.."#"..adres;
----
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li '..(czy_przypis and ('style="display:none;" ') or "")..'class=\"toclevel-1 tocsection-1\">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local frame=frame or mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
local bez_przypisow=PobierzParametr("bez przypisów");
bez_przypisow=parametry_modul.CzyTak(bez_przypisow);
local twor_listy=p.TOCSilnik(frame,lista_elementow_spisu_tresci,nil,bez_przypisow);
local toc_czy_tocramka=PobierzParametr("toc");toc_czy_tocramka=parametry_modul.CzyTak(toc_czy_tocramka);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=PobierzParametr("funkcja") or "UkrytaWikitabelowaListaMenu";
local wysokosc=PobierzParametr("wysokość");wysokosc=parametry_modul.CzyTak(wysokosc) and wysokosc or "43.75rem";
local szerokosc=PobierzParametr("szerokość");szerokosc=parametry_modul.CzyTak(szerokosc)and szerokosc or "100%";
local spis_tresci=PobierzParametr("spis treści");spis_tresci=parametry_modul.CzyTak(spis_tresci)and spis_tresci or "Spis treści";
local bez_not_overflow_x=PobierzParametr("bez pasków poziomych przewijania");bez_not_overflow_x=parametry_modul.CzyTak(bez_not_overflow_x);
local spis_artykulu=PobierzParametr("spis artykułu");spis_artykulu=parametry_modul.CzyTak(spis_artykulu);
local czy_bez_arginesu_dolnego=PobierzParametr("bez marginesu dolnego");czy_bez_arginesu_dolnego=parametry_modul.CzyTak(czy_bez_arginesu_dolnego);
local z_marginesami_ramki=PobierzParametr("z marginesami ramki");local czy_z_marginesami_ramki=parametry_modul.CzyTak(z_marginesami_ramki);
local zawartosc_z_marginesami=PobierzParametr("zawartość z marginesami");local czy_zawartosc_z_marginesami=parametry_modul.CzyTak(zawartosc_z_marginesami);
local maxwidth=PobierzParametr("max-width");
local czy_maxwidth=((maxwidth)and(maxwidth~="none"))and tonumber(mw.ustring.match(maxwidth,"^(%d+)%a+$")) or nil;
local klasa=PobierzParametr("klasa");
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y '..((not bez_not_overflow_x) and ("mw-not-overflow-x") or "")..'" style="'..(czy_zawartosc_z_marginesami and ("padding:"..zawartosc_z_marginesami)..";" or "")..(czy_maxwidth and ('max-width:'..maxwidth..";") or '')..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:3px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..z_marginesami_ramki)..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..'font-size:1em;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div class="tytuł_spisu_treści" style="text-align:left;font-size:1em;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:8.125em;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści'..(klasa and (" "..klasa) or '')..'}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n<div style="color: #000;font-family: \'Linux Libertine\',\'Georgia\',\'Times\',serif;font-weight: normal;font-size:2.2em;border-bottom:1px solid #a2a9b1;line-height: 1.3;margin-top:1em;margin-bottom:0.25em">Spis treści</div>\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:1em;font-size:1em;line-height:1.4;">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu,tablica_danych_parametrow_szablonu_strony,__Funkcja, __Funkcja2)
if(obiekt~="SZABLON")then return;end;
--uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
--local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modulu];
----
local szablonowe_modul=require("Module:Szablonowe");
----
local function GlownaFunkcja(wywolanie,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(wywolanie,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
__Funkcja(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,wywolanie,obiekt,kod,tab_numer);
if(__Funkcja2)then
__Funkcja2(wywolanie,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end);
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod);
end;
function p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(artykul,czy_naglowek)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(artykul))and(artykul["LINK"]))then
if(not czy_naglowek)then
return artykul[1];
else
return artykul;
end;
end;
return artykul;
end;
function p.CzyTabelaStronyWoluminuSpisuRzeczy(tab_artykul)
local parametry_modul=require("Module:Parametry");
local czy_table_baza_artykulu=parametry_modul.TypeTable(tab_artykul);
if((czy_table_baza_artykulu)and(tab_artykul["LINK"]))then return false;end;
return czy_table_baza_artykulu;
end;
function p.TylkoNazwaStronyWoluminuZTabeliPublikacji(tab_artykulu,pomin_link)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(tab_artykulu))and(pomin_link or tab_artykulu["LINK"]))then return tab_artykulu[1];end;
return tab_artykulu;
end;
function p.TylkoStronaWoluminuBezParametrowOrazReferencji(tab_artykulu)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(tab_artykulu))and(tab_artykulu["LINK"]))then return nil;end;
return tab_artykulu;
end;
function p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_artykulu_strony,parametry,naglowek,tab_innej_przekierowania_strony)
local parametry_modul=require("Module:Parametry");
parametry=parametry_modul.CzyTak(parametry) and parametry or nil;
naglowek=parametry_modul.CzyTak(naglowek) and naglowek or nil;
return (parametry or naglowek or tab_innej_przekierowania_strony) and {nazwa_artykulu_strony,parametry,naglowek,["LINK"]=true,tab_innej_przekierowania_strony,} or nazwa_artykulu_strony;
end;
function p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,naglowek,pomin_link)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.TypeTable(tab_artykul))then
if(pomin_link or tab_artykul["LINK"])then
local nazwa_artykulu_strony=tab_artykul[1];
if(naglowek)then
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return nazwa_artykulu_strony;
end;
else
return tab_artykul;
end;
else
return tab_artykul;
end;
end;
function p.DekodowanieTekstu(tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,czy_nie_odstepy)
if(not tekst)then return tekst;end;
local szablonowe_modul=require("Module:Szablonowe");
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local html_modul=require("Module:Html");
tekst=html_modul.DecodeHtml(tekst,true,nil,nil,czy_nie_odstepy);
return tekst;
end;
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory)
----
local szablonowe_modul=require("Module:Szablonowe");
local czy_kodowanie=mw.ustring.match(nazwa_szablonu,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_kodowanie)then return nil,true;end;
if(not czy_uwzgledniac_modyfikatory)then
local czy_modyfikatory=mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:");
if(czy_modyfikatory)then return nil,false;end;
end;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
--local tab_naglowki=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu;
--local tab_tekst=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu;
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
---
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
----
local tab_szablony_strona_zbiorcza=stronicowyparser_obiekty_modul.strona_zbiorcza
----
local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
----
local techniczne_modul=require("Module:Techniczne");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local czy_szablon_wszystko=false;
local nazwa_szablonu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(nazwa_szablonu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,function(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
if(obiekt=="SZABLON")then
local wynik,jaki_wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((tab_szablony[nazwa_szablonu])
---or(tab_naglowki[nazwa_szablonu])
--or(tab_tekst[nazwa_szablonu]
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
or(tab_szablony_strona_zbiorcza[nazwa_szablonu])
or(tab_szablony_strona_start[nazwa_szablonu])
)then return nil,false;end;
for _,nazwa_modulu_lua in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_ramek_lua)do
if((nazwa_szablonu==nazwy_np_modul.Module..":"..nazwa_modulu_lua)
or(mw.ustring.match(nazwa_szablonu,'^'..nazwy_np_modul.Module..":"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](nazwa_modulu_lua).."/"))
)then
return nil,false;
end;
end;
return true,true;
end);
czy_szablon_wszystko=czy_szablon_wszystko or ((jaki_wynik==nil)and true or jaki_wynik);
return wynik;
end;
return true;
end);
if(czy_szablon_wszystko)then
local frame=mw.getCurrentFrame();
nazwa_szablonu=frame:preprocess(nazwa_szablonu);
end;
return nazwa_szablonu,true;
end;
function p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_szablonowe_kolidacja=stronicowyparser_obiekty_modul.nazwy_szablonowe_kolidacja;
if(nazwy_szablonowe_kolidacja[nazwa_szablonu])then return nazwa_szablonu,false;end;
local nazwa_linku=stronicowyparser_obiekty_modul.przekierowania_szablonowe_linkowe_inteligentne_inne[nazwa_szablonu];
if(nazwa_linku)then return nazwa_linku,true;end;
local litery_przestrzeni_kolidacja=stronicowyparser_obiekty_modul.litery_przestrzeni_kolidacja;
local link,prze,ustep,dwa=mw.ustring.match(nazwa_szablonu,"^(%a)(%a)(%a?)(%d?)$");
if((link)and(link=="L"))then
if((ustep=="")or(ustep=="u"))then
prze=litery_przestrzeni_kolidacja[prze] or prze;
local przez_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[prze];
if(przez_literowa)then
local nazwa="Link"..przez_literowa..((ustep~="")and "Ustęp" or "")..dwa;
return nazwa,true;
end;
if(ustep=="")then
if(prze=="u")then return "LinkUstęp"..dwa,true;end;
if(prze=="o")then return "LinkOgólne"..dwa,true;end;
end;
else
local projektowe_literowe=stronicowyparser_obiekty_modul.nazwy_projektowe_serwisy_linkowe_inteligentne[prze];
if(projektowe_literowe)then
ustep=litery_przestrzeni_kolidacja[ustep] or ustep;
local prze_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[ustep];
if(prze_literowa)then
return "Link"..projektowe_literowe..prze_literowa..dwa,true;
end;
end;
end;
return nazwa_szablonu,false;
else
local link,projekt,prze,ustep,dwa=mw.ustring.match(nazwa_szablonu,"^(%a)(%a)(%a)(%a?)(%d?)$");
if((link)and(link=="L"))then
if((ustep=="")or(ustep=="u"))then
local projektowe_literowe=stronicowyparser_obiekty_modul.nazwy_projektowe_serwisy_linkowe_inteligentne[projekt];
if(projektowe_literowe)then
prze=litery_przestrzeni_kolidacja[prze] or prze;
local prze_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[prze];
if(prze_literowa)then
return "Link"..projektowe_literowe..prze_literowa..((ustep~="") and "Ustęp" or "")..dwa,true;
end;
end;
end;
end;
return nazwa_szablonu,false;
end;
end;
function p.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa,tablica_danych_parametrow_szablonu_strony,kod,czy_liczyc_przekierowanie)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[0];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.tablica_analizy_linku;
end;
end;
end;
nazwa=(not czy_liczyc_przekierowanie)and p.SzablonyPrzekierowanioweInteligentne(nazwa) or nazwa;
local function AnalizaSzablonowaLinku()
local nazwa,dwa=mw.ustring.match(nazwa,"^Link(%a+)(2?)$");
if(not nazwa)then return;end;
if(dwa=="")then dwa=nil;else dwa=true;end;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
----
local tab_przestrzen=stronicowyparser_obiekty_modul.kody_szablony_linkowe_przestrzenne;
local tab_jezyk=stronicowyparser_obiekty_modul.kody_szablony_linkowe_dialektu;
local tab_projektowe=stronicowyparser_obiekty_modul.kody_szablony_linkowe_projektowe;
----
local nazwa_nowa,ustep_nowa=mw.ustring.match(nazwa,"^(.+)(Ustęp)$")
nazwa=nazwa_nowa or nazwa;
local czy_ustep=ustep_nowa and true or false;
local przestrzen=mw.ustring.match(nazwa,"^(%u%l+)$");
if(przestrzen)then
local przestrzenne=tab_przestrzen[przestrzen];
if(przestrzenne)then
return {przestrzenne[1],przestrzenne[2],nil,czy_ustep,dwa,};
end;
end;
----
local jezyk,przestrzen=mw.ustring.match(nazwa,"^(%u%l+)(%u%l+)$");
if(jezyk and przestrzen)then
local jezykowe=tab_jezyk[jezyk];local przestrzenne=tab_przestrzen[przestrzen];
if(jezykowe and przestrzenne)then
return {przestrzenne[1],przestrzenne[2],jezykowe,czy_ustep,dwa,};
end;
----
local projektowe=tab_projektowe[jezyk];
if(projektowe and przestrzenne)then
return {przestrzenne[1],projektowe or przestrzenne[2],czy_ustep,nil,dwa,};
end;
end;
-----
local jezyk,projekt,przestrzen=mw.ustring.match(nazwa,"^(%u%l+)(%u%l+)(%u%l+)$");
if(jezyk and projekt and przestrzen)then
local jezykowe=tab_jezyk[jezyk];local projektowe=tab_projektowe[projekt];local przestrzenne=tab_przestrzen[przestrzen]
if(jezykowe and projektowe and przestrzenne)then
return {przestrzenne[1], projektowe or przestrzenne[2],jezykowe,czy_ustep,dwa,}
end;
local projektowe=tab_projektowe[jezyk..projekt];
if(projektowe and przestrzenne)then
return {przestrzenne[1],projektowe or przestrzenne[2],nil,czy_ustep,dwa,};
end;
end;
return nil;
end;
local wynik=AnalizaSzablonowaLinku();
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[0])then tablica_danych_parametrow_szablonu_strony[0]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[0];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.tablica_analizy_linku=wynik;
end;
return wynik;
end;
function p.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-7];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
--local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
--local tab_szablony_inteligentne=stronicowyparser_obiekty_modul.kody_inne_szablony_linkowe_inteligentne;
local nazwa_zamiast_linku;
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
if(nazwa_szablonu=="Sekcja referencyjna")then
local nazwa=tabela_parametrow_szablonu["nazwa"] or tabela_parametrow_szablonu[2];
if(nazwa)then return nazwa;end;
local strona=tabela_parametrow_szablonu["strona"] or tabela_parametrow_szablonu[1];
local parametry_modul=require("Module:Parametry");
local czy_strona=parametry_modul.CzyTak(strona) and true or false;
if(not czy_strona)then
local nazwy_modul=require("Module:Nazwy");
strona=nazwy_modul["PEŁNANAZWAKSIĄŻKI"]();
end;
local ustep=tabela_parametrow_szablonu["ustęp"];
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
local czy_ustep=parametry_modul.CzyTak(ustep);
if(not czy_strona)then czy_ustep=not czy_ustep;end;
nazwa_zamiast_linku=sekcja_referencyjna_modul.Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
elseif(nazwa_szablonu=="Link wewnętrzny")then
nazwa_zamiast_linku=tabela_parametrow_szablonu["nazwa"] or (tabela_parametrow_szablonu["strona"] or "")..(tabela_parametrow_szablonu["nagłówek"]and("#"..tabela_parametrow_szablonu["nagłówek"]) or "")
elseif(nazwa_szablonu=="LinkOgólne")then
nazwa_zamiast_linku=tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
elseif(nazwa_szablonu=="SpisTreści")then
local nazwa=(tabela_parametrow_szablonu["nazwa"]
or tabela_parametrow_szablonu[3]
or tabela_parametrow_szablonu["artykuł"]
or tabela_parametrow_szablonu[1]);
if(nazwa)then
local dodatek=tabela_parametrow_szablonu["dodatek"] or tabela_parametrow_szablonu[4];
if(dodatek)then dodatek=" "..dodatek;else dodatek="";end;
nazwa_zamiast_linku=nazwa..dodatek;
end;
elseif(nazwa_szablonu=="LinkURL")then
local nazwa=tabela_parametrow_szablonu["nazwa"] or tabela_parametrow_szablonu["n"];
if(nazwa)then
nazwa_zamiast_linku=nazwa;
else
local strona=tabela_parametrow_szablonu["strona"] or tabela_parametrow_szablonu["s"];
nazwa_zamiast_linku=strona;
end;
end;
if((nazwa_zamiast_linku)and(nazwa_zamiast_linku~=""))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-7])then tablica_danych_parametrow_szablonu_strony[-7]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-7];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=nazwa_zamiast_linku;
end;
end;
return nazwa_zamiast_linku;
end;
function p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-8];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local tab_spis=inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tab_spis)then
local czy_true=tab_spis[1];
local parametr;local numer;
if(czy_true)then
parametr=tabela_parametrow_szablonu[tab_spis.numer_link];
else
parametr=tabela_parametrow_szablonu[tab_spis.link];
local numer=tabela_parametrow_szablonu[tab_spis.numer];
parametr=(parametr and numer)and (numer.." "..parametr) or (parametr);
end;
if((parametr)and(parametr~=""))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-8])then tablica_danych_parametrow_szablonu_strony[-8]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-8];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=parametr;
end;
end;
return parametr;
end;
return nil;
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych)
local numer;
if((obiekt)and(kod))then
if(obiekt=="SZABLON")then
numer=-2;
elseif(obiekt=="LINKW")then
numer=-3;
elseif(obiekt=="LINKZ")then
numer=-4;
end;
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[numer];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod[1],tablica_danych_parametrow_szablonu_strony_numer_kod[2],tablica_danych_parametrow_szablonu_strony_numer_kod[3],tablica_danych_parametrow_szablonu_strony_numer_kod[4],tablica_danych_parametrow_szablonu_strony_numer_kod[5];
end;
end;
end;
end;
local local1,local2,local3,local4,local5=p.AnalizujLinkSzablonyOrazLinki2(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
if((obiekt)and(kod))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[numer])then tablica_danych_parametrow_szablonu_strony[numer]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[numer];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
tablica_danych_parametrow_szablonu_strony_numer[kod]={local1,local2,local3,local4,local5,};
end;
end;
return local1,local2,local3,local4,local5;
end;
function p.AnalizujLinkSzablonyOrazLinki2(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych)
----
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local pozycja_artykulu=nil;local nazwa=nil;
local czy_tabela_do_parsowania_artykulu=parametry_modul.TypeTable(wyzyskane_wywolanie_szablonu_spis_tresci);
if(not czy_tabela_do_parsowania_artykulu)then
pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^|%[%]]+)|(.+)%]%]$");
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^|%[%]]+)%]%]$");
end;
end;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy")
local techniczne_modul=require("Module:Techniczne");
local pelna_nazwa_spisu_tresci_analizowana=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
local function Artykul(strona,parametry--[[_ref]],naglowek--[[_ref]])
----
--local parametry=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](strona,true);
--local naglowek=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](strona,true);
----
strona=html_modul["NazwaStronyAdresu"](strona,true);
strona=parametry_modul["Odstępy"]{[1]=strona,[2]="tak",};
local techniczne_modul=require("Module:Techniczne");
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_spisu_tresci_analizowana,};
----
local tabela_nazw_strona={};
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw_strona);
local nazwa_przestrzeni_ksiazki_strony=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw_strona);
local nazwa_ksiazki_strony=(nazwa_przestrzeni_ksiazki_strony~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw_strona) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw_strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw_strona);
--if((tab_nazwa_spisow_przekierowaniowych)and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])and
--[[else]]
if(tab_nazwa_spisow_przekierowaniowych)then
local techniczne_modul=require("Module:Techniczne");
local strona_przekierowania=techniczne_modul.PrzekierowanieDoStrony(strona);
local function DaneRozwazone(strona_przekierowania,inna_ksiazka,czy_przekierowanie)
local tabela_nazw_przekierowanie={};
----
local nazwa_przestrzeni_strony_przekierowania=nazwy_modul["NAZWAPRZESTRZENI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_przestrzeni_ksiazki_strony_przekierowania=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_ksiazki_strony_przekierowania=(nazwa_przestrzeni_ksiazki_strony~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie) or nazwy_modul["NAZWAKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_artykulu_strony_przekierowania=((not inna_ksiazka) and (nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie)) or (nazwa_artykulu_strony));
----
local tabela_nazw_adresu_przekierowania={};
local parametry_przekierowania=((not inna_ksiazka) and (html_modul["ParametryStronyAdresu"](strona_przekierowania,true,tabela_nazw_adresu_przekierowania)) or nil);
local naglowek_przekierowania=((not inna_ksiazka) and (html_modul["NagłówekStronyAdresu"](strona_przekierowania,true,tabela_nazw_adresu_przekierowania)) or nil);
----
if((nazwa_przestrzeni_strony_przekierowania==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony_przekierowania==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony_przekierowania==nazwa_ksiazki))then
local czy_inne_ksiazka=((inna_ksiazka)or(((nazwa_przestrzeni_strony~=nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki_strony~=nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki_strony~=nazwa_ksiazki))));
if(czy_inne_ksiazka)then
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony]={};
end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony]={};
end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony]=true;
end;
end;
return {nazwa_artykulu_strony_przekierowania,parametry_modul.CzyTak(parametry_przekierowania) and parametry_przekierowania or nil,parametry_modul.CzyTak(naglowek_przekierowania) and naglowek_przekierowania or nil,{czy_inne_ksiazka and {nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,inna_ksiazka,true,czy_przekierowanie,} or nil,czy_przekierowanie and nazwa_artykulu_strony or nil,czy_przekierowanie and parametry or nil,czy_przekierowanie and naglowek or nil,} or nil,};
else
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return {nazwa_artykulu_strony,parametry_modul.CzyTak(parametry) and parametry or nil,parametry_modul.CzyTak(naglowek) and naglowek or nil,{{nazwa_przestrzeni_strony_przekierowania,nazwa_przestrzeni_ksiazki_strony_przekierowania,nazwa_ksiazki_strony_przekierowania,true,false,czy_przekierowanie,},nazwa_artykulu_strony_przekierowania,parametry_przekierowania,naglowek_przekierowania,} or nil,};
else
return nil,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony;
end;
end;
end;
if(strona_przekierowania)then
return DaneRozwazone(strona_przekierowania,nil,true);
else
if((tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])
and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony])and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony]))then
return {nazwa_artykulu_strony,parametry_modul.CzyTak(parametry) and parametry or nil,parametry_modul.CzyTak(naglowek) and naglowek or nil,{{nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,true,true,false,},nil,nil,nil,},};
end;
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,"");
local strona_przekierowania=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
if(strona_przekierowania)then
return DaneRozwazone(strona_przekierowania,true,false);
end;
end;
end;
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return {nazwa_artykulu_strony,parametry,naglowek,};
end
return nil,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony;
end;
---
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local function DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,parametry_ref,naglowek_ref,nazwa,czy_link,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(not mw.ustring.match(pozycja_artykulu,"[{}%[%]|]"))then
if((czy_nie_dwukropek)and(((not kod_jezyka)and(not kod_projektu)and(not klucz_projektu))or (parametry_modul.CzyTak(klucz_projektu)and((klucz_projektu==kod_jezyka_tego_projektu)or(klucz_projektu==kod_projektu_tego_projektu)or(klucz_projektu==kod_jezyka_tego_projektu..":"..kod_projektu_tego_projektu)or(klucz_projektu==kod_projektu_tego_projektu..":"..kod_jezyka_tego_projektu))) or(((kod_jezyka)and(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu)and(kod_projektu==kod_projektu_tego_projektu))) or ((kod_jezyka)and(not kod_projektu)and(kod_jezyka==kod_jezyka_tego_projektu))or((kod_projektu)and(not kod_jezyka)and(kod_projektu==kod_projektu_tego_projektu))))then
----
pozycja_artykulu=p.DekodowanieTekstu(pozycja_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil)
parametry_ref=p.DekodowanieTekstu(parametry_ref,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil);
naglowek_ref=p.DekodowanieTekstu(naglowek_ref,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil);
----
local czy_link=czy_link or mw.ustring.match(pozycja_artykulu,"^:");
local tabela_nazw_adresu_artykulu={};
parametry_ref=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
naglowek_ref=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
pozycja_artykulu=html_modul["NazwaStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
----
local czy_pozycja_artykulu=pozycja_artykulu;
local pozycja_artykulu,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony=Artykul(pozycja_artykulu,parametry_ref,naglowek_ref);
if(pozycja_artykulu)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(pozycja_artykulu[1],pozycja_artykulu[2],pozycja_artykulu[3],pozycja_artykulu[4]),nazwa,nil,nil,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
local nazwy_modul=require("Module:Nazwy");
--local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=czy_pozycja_artykulu,};
strona=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni_strony==nazwy_np_modul.Main)
or(nazwa_przestrzeni_strony==nazwy_np_modul.Wikijunior)
or(nazwa_przestrzeni_strony==nazwy_np_modul.Wikibooks)
or(nazwa_przestrzeni_strony==nazwy_np_modul.User)
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona,parametry_ref,naglowek_ref,nil),nazwa,nil,nil,},2,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
elseif(
czy_link
or parametry_modul.CzyTak(klucz_projektu)
or parametry_modul.CzyTak(kod_jezyka)
or parametry_modul.CzyTak(kod_projektu)
or ((nazwa_przestrzeni_strony~=nazwy_np_modul.Category)and(nazwa_przestrzeni_strony~=nazwy_np_modul.File))
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona,parametry_ref,naglowek_ref,nil),nazwa,nil,nil,},3,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
else
local pozycja_artykulu_stara=pozycja_artykulu;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka=kod_jezyka or pudelko_modul["Kod języka tego projektu"]();
local kod_projektu=kod_projektu or pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
pozycja_artykulu=p.DekodowanieTekstu(pozycja_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil);
local czy_link=czy_link or mw.ustring.match(pozycja_artykulu,"^:");
local nazwa_strony_linku;
local uzyskana_nazwa_strony_linku;
if(czy_nie_dwukropek)then
nazwa_strony_linku=pozycja_artykulu;
else
local kod_jezyka_poczatkowy, kod_projektu_poczatkowy;
nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy);
uzyskana_nazwa_strony_linku=nazwa_strony_linku;
end;
----
parametry_ref=p.DekodowanieTekstu(parametry_ref,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil);
naglowek_ref=p.DekodowanieTekstu(naglowek_ref,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil);
----
local html_modul=require("Module:Html");
local tabela_nazw_adresu={};
local parametry_strony=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
local naglowek_strony=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
local nazwy_modul=require("Module:Nazwy");
----
local tabela_nazw_artykul={};
local nazwa_przestrzeni=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul);
local nazwa_kanoniczna_przestrzeni;
local biezaca_wiki;
if(tabela_nazw_artykul.czy_aktualna_wiki==nil)then
biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
else
biezaca_wiki=tabela_nazw_artykul.czy_aktualna_wiki;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(biezaca_wiki)then
local czy_wyswietlic_link=((uzyskana_nazwa_strony_linku)and(uzyskana_nazwa_strony_linku~=pozycja_artykulu))and true or false;
if(nazwa_przestrzeni)then
if((nazwa_przestrzeni==nazwy_np_modul.Main)
or(nazwa_przestrzeni==nazwy_np_modul.Wikijunior)
or(nazwa_przestrzeni==nazwy_np_modul.Wikibooks)
or(nazwa_przestrzeni==nazwy_np_modul.User)
)then
local pozycja_artykulu,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony=Artykul(nazwa_strony_linku);
if(pozycja_artykulu)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(pozycja_artykulu[1],pozycja_artykulu[2] or parametry_strony,pozycja_artykulu[3] or naglowek_strony,pozycja_artykulu[4]),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
nazwa_strony_linku=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},2,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
elseif(
czy_link
or (nazwa_strony_linku~=pozycja_artykulu)
or ((nazwa_przestrzeni~=nazwy_np_modul.Category)and(nazwa_przestrzeni~=nazwy_np_modul.File))
)then
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul)
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},3,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul);
nazwa_kanoniczna_przestrzeni=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_kanoniczna_przestrzeni)then
if((nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Main)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Wikijunior)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Project)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.User)
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,pozycja_artykulu_stara,},4,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,pozycja_artykulu_stara,},5,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
---
local czy_pozycja_artykulu=nil;
if((not pozycja_artykulu)and(not czy_tabela_do_parsowania_artykulu))then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^({{[^{}]+}})$");
if(link_szablon)then
local szablonowe_modul=require("Module:Szablonowe");
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(link_szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
if(nazwa_szablonu=="SpisTreści")then
local tabela_nazw_spis_rzeczy={};
pozycja_artykulu=p.SpisRzeczySzablon(nazwa_szablonu,1,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
------
local nazwa_ksiazki=p.SpisRzeczySzablon(nazwa_szablonu,2,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if(not nazwa_ksiazki)then
pozycja_artykulu=p.DekodowanieTekstu(pozycja_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
local datatek=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if((nazwa)or(dodatek))then
local nazwa=(nazwa or pozycja_artykulu)..((dodatek) and (" "..dodatek) or "");
------
return {pozycja_artykulu,nazwa,},1,true,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
return {pozycja_artykulu,nil,},1,true,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
local adres=nazwa_spisu_tresci..((pozycja_artykulu~="")and ("/"..pozycja_artykulu)or "");
adres=p.DekodowanieNazwySzablonu(adres,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres;
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
local datatek=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if((nazwa)or(dodatek))then
nazwa=(nazwa or pozycja_artykulu)..((dodatek) and (" "..dodatek) or "");
end;
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(adres);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(adres,nil,nil,nazwa,true,czy_nie_dwukropek,nil,nil,nil,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
end;
elseif(nazwa_szablonu=="Sekcja referencyjna")then
local tabela_nazw_sekcja_referencyjna={};
local strona=p.SpisRzeczySzablon(nazwa_szablonu,1,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local podstrona=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
-----
strona=strona and p.DekodowanieTekstu(strona,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or strona;
podstrona=podstrona and p.DekodowanieTekstu(podstrona,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or podstrona;
-----
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,2,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
if(nazwa)then
local html_modul=require("Module:Html");
nazwa=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa);
nazwa=parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak",[4]="tak",};
end;
----
local ustep=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local od_malej=p.SpisRzeczySzablon(nazwa_szablonu,5,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local od_duzej=p.SpisRzeczySzablon(nazwa_szablonu,6,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
----
local nazwa_przestrzeni_nazw=p.SpisRzeczySzablon(nazwa_szablonu,7,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local nazwa_jednostki=p.SpisRzeczySzablon(nazwa_szablonu,8,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
----
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
----
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
local strona_artykulu,nazwa_artykulu=sekcja_referencyjna_modul.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,nil,true);
----
local html_modul=require("Module:Html");
local tabela_nazw_adresu={};
local parametry_ref=html_modul["ParametryStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
local naglowek_ref=html_modul["NagłówekStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
----
local strona_ref=html_modul["NazwaStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
-----
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona_ref,parametry_ref,naglowek_ref),nazwa_artykulu,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki"](
{
args={
["nazwa przestrzeni nazw"]=nazwa_przestrzeni_nazw,
["nazwa jednostki"]=nazwa_jednostki,
}
},0);
local strona_artykulu,nazwa_artykulu=sekcja_referencyjna_modul.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,pelnanazwajednostki);
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(strona_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(strona_artykulu,nil,nil,nazwa_artykulu,true,czy_nie_dwukropek,nil,nil,nil,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
end;
elseif(nazwa_szablonu=="Link wewnętrzny")then
local pozycja_artykulu=tabela_parametrow_szablonu["strona"];
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local nazwa=tabela_parametrow_szablonu["nazwa"];
local naglowek=tabela_parametrow_szablonu["nagłówek"];
local klucz_projektu=tabela_parametrow_szablonu["klucz projektu"];
local kod_jezyka=tabela_parametrow_szablonu['kod języka'];
local kod_projektu=tabela_parametrow_szablonu["kod projektu"];
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,naglowek,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
else
local nazwa_szablonu_nowa,dwa=mw.ustring.match(nazwa_szablonu,"^(LinkOgólne)(2?)$");
if(nazwa_szablonu_nowa)then
local pozycja_artykul;
local strona=tabela_parametrow_szablonu[1];
if(not strona)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local czy_dwa=(dwa~="")and true or false;
local nazwa=(not czy_dwa) and tabela_parametrow_szablonu[2] or nil;
local klucz_projektu=tabela_parametrow_szablonu["klucz projektu"] or tabela_parametrow_szablonu["k"];
local kod_jezyka=tabela_parametrow_szablonu['kod języka'] or tabela_parametrow_szablonu["kj"];
local kod_projektu=tabela_parametrow_szablonu["kod projektu"] or tabela_parametrow_szablonu["kp"];
local miano_przestrzeni_nazw=tabela_parametrow_szablonu["miano przestrzeni nazw"]
or tabela_parametrow_szablonu["przestrzeń"]
or tabela_parametrow_szablonu["f"];
if(miano_przestrzeni_nazw)then
pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..strona;
else
pozycja_artykulu=strona;
end;
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
else
local dane_szablonu_linku=p.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod,true);
if(dane_szablonu_linku)then
local pozycja_artykulu=tabela_parametrow_szablonu[1];
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local nazwa_przestrzeni=dane_szablonu_linku[1];
local pozycja_artykulu=(((nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":") or "")..tabela_parametrow_szablonu[1];
local nazwa=((not dane_szablonu_linku[4])and(not dane_szablonu_linku[5])) and (tabela_parametrow_szablonu[2]) or nil;
local klucz_projektu;local kod_jezyka;local kod_projektu;
if((not dane_szablonu_linku[2])and(not dane_szablonu_linku[3]))then
klucz_projektu=tabela_parametrow_szablonu["klucz projektu"] or tabela_parametrow_szablonu["k"];
kod_jezyka=tabela_parametrow_szablonu['kod języka'] or tabela_parametrow_szablonu["kj"];
kod_projektu=tabela_parametrow_szablonu["kod projektu"] or tabela_parametrow_szablonu["kp"];
else
kod_jezyka=dane_szablonu_linku[3];
kod_projektu=dane_szablonu_linku[2];
end;
local czy_nie_dwukropek;
if(nazwa_przestrzeni=="")then
czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
elseif((not kod_jezyka)and(not kod_projektu)and(not klucz_projektu))then
czy_nie_dwukropek=true;
else
czy_nie_dwukropek=false;
end;
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
elseif((__FUNKCJA)and(__FUNKCJA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)))then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},true;
end;
end;
end;
end);
else
local nazwa_strony=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[(%S+)%s*%]$");
if(nazwa_strony)then
nazwa_strony=html_modul.DecodeHtml(nazwa_strony,true);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony,nil,nil),nil,nil,nil, nazwa_strony,"url",},6,false,nil,false;
else
local nazwa_strony,nazwa_linku=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[(%S+)%s+([^%[%]]-)%s*%]$");
if((nazwa_strony)and(nazwa_linku))then
nazwa_strony=html_modul.DecodeHtml(nazwa_strony,true);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony,nil,nil),nazwa_linku,nil,nil, nazwa_strony,"url",},6,false,nil,false;
end;
end;
end;
elseif(not czy_tabela_do_parsowania_artykulu)then
local specjalne_modul=require("Module:Specjalne");
if(specjalne_modul.CzyInterwiki(wyzyskane_wywolanie_szablonu_spis_tresci))then
return nil,nil,false,nil,true;
end;
local parametry_modul=require("Module:Parametry");
--pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
czy_pozycja_artykulu=pelna_nazwa_spisu_tresci_analizowana.."/"..czy_pozycja_artykulu;
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(czy_pozycja_artykulu,nil,nil,nazwa,true,true,nil,nil,nil,nil);
else
pozycja_artykulu=nil;
return {pozycja_artykulu,nazwa},1,false,nil,false;
end;
else
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,false,czy_nie_dwukropek,nil,nil,nil,nil);
end;
else
local pozycja_artykulu=wyzyskane_wywolanie_szablonu_spis_tresci[1];
local nazwa=wyzyskane_wywolanie_szablonu_spis_tresci[2];
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,nil,nil,nil,nil);
end;
end;
return p;
56bbqntketmutwkte4qcxpdm1fiunku
Szablon:StronaStart/stronastart.css
10
58549
551508
551126
2026-08-11T23:30:53Z
Persino
2851
551508
sanitized-css
text/css
body.skin--responsive .strona_start{
font-size:1rem;
line-height:1.4;
}
body:not(.skin--responsive) .strona_start{
font-size:16px;
line-height:1.4;
}
.strona_prawa .spis{
display:flex;
flex-direction:column;
width:100%;
}
.strona_prawa .spis > div,
.strona_prawa .spis > div > div{
height:auto;
max-height:100%;
}
.strona_prawa .spis > div,
.strona_prawa .spis > div > div{
height:auto;
max-height:100%;
width:auto;
display:flex !important;
flex-direction:column;
box-sizing:border-box;
}
.strona_prawa .spis .style_strony_bocznego_menu,
.strona_prawa .spis .style_strony_TOC{
overflow:auto;
}
@media all and (max-width:745px){
.strona_prawa .spis > div,
.strona_prawa .spis > div > div{
width:100% !important;
}
}
.strona_prawa .mw-sticky-y.spis:not(:hover){
transform: scale(0.3,0.3) translate(-116.5%,-116.5%);
/**/
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay:4s;
}
.strona_prawa .mw-sticky-y.spis:hover{
max-width:43.75rem !important;
transform: scale(1,1) translate(0,0);
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay: 0s;
}
.strona_prawa .pierwsza_strona.mw-overflow-y.mw-scrollbar-overflow-y{
padding-right:0.3125rem;
}
.strona_prawa .pierwsza_strona .wikitable{
margin-top:0.3125rem;
margin-bottom:0.3125rem;
}
.strona_prawa .pierwsza_strona hr.pierwsza_strona_spis_treści-hr{
height: 1px;
background-color: var(--border-color-base,#a2a9b1);
border: 0;
margin: 0.2em 0;
}
.strona_prawa .pierwsza_strona .pierwsza_strona_spis_treści{
font-size:0.875rem;
line-height:1.2;
}
.strona_start.tło_strona_start,
.strona_start .tło_strona_nadrzędna,
.strona_start .tło_główna_strona,
.strona_start .tło_strona_środkowa,
.strona_start .tło_strona,
.strona_start .tło_ciało_kontener,
.strona_start .tło_ciało_strona{
background-color:white;
background-image: none;
}
.strona_prawa .nawigacja_boksy > .mw-optimal-x > div{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
margin-left:0.3125rem !important;
margin-right:0 !important;
}
.strona_lewa .nawigacja_boksy > .mw-optimal-x > div{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
margin-right:0.3125rem !important;
margin-left:0 !important;
}
.strona_prawa .mw-optimal-x:hover,
.strona_lewa .mw-optimal-x:hover{
transform: scale(1,1) translate(0,0);
max-width:none !important;
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay: 0s;
}
.strona_prawa .mw-optimal-x:not(:hover){
transform: scale(0.3,0.3) translate(116.5%,-116.5%);
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay:4s;
}
.strona_lewa .mw-optimal-x:not(:hover){
transform: scale(0.3,0.3) translate(-116.5%,-116.5%);
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay:4s;
}
html.client-nojs .strona_prawa,
html.client-nojs .strona_lewa{
overflow-x:auto !important;
overflow-y:hidden !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis{
visibility:visible !important;
position:relative !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:hover{
width: 100% !important;
max-width:calc( 100% - 0.3125rem ) !important;
height:auto !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:not(:hover){
width:100% !important;
max-width:calc( 100% - 0.3125rem ) !important;
height:auto !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:hover{
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:not(:hover){
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-sticky-y > .style_strony_TOC,
html.client-nojs .strona_prawa .mw-sticky-y > .style_strony_bocznego_menu{
overflow:auto;
padding-bottom:0.3125rem;
}
.strona_prawa .mw-sticky-y > .style_strony_TOC > .strona_spisu_treści,
.strona_prawa .mw-sticky-y > .style_strony_bocznego_menu > div{
flex:0 0 auto;
}
html.client-nojs .strona_prawa .nawigacja_boksy,
html.client-nojs .strona_lewa .nawigacja_boksy{
margin-top:0.3125rem !important;
visibility:visible !important;
}
html.client-nojs .strona_prawa .mw-optimal-x:not(:hover),
html.client-nojs .strona_lewa .mw-optimal-x:not(:hover){
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-optimal-x:hover,
html.client-nojs .strona_lewa .mw-optimal-x:hover{
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-optimal-x,
html.client-nojs .strona_lewa .mw-optimal-x{
overflow:auto !important;
visibility:visible !important;
position:relative !important;
z-index:1 !important;
direction: rtl;
width: auto !important;
}
html.client-nojs .strona_prawa .mw-optimal-x:not(:hover),
html.client-nojs .strona_lewa .mw-optimal-x:not(:hover){
width: auto !important;
max-width: calc( 100% - 0.3125rem ) !important;
height: auto !important;
}
html.client-nojs .strona_prawa .mw-optimal-x:hover,
html.client-nojs .strona_lewa .mw-optimal-x:hover{
z-index:3 !important;
width:100% !important;
max-width:calc( 100% - 0.3125rem ) !important;
}
body.skin-minerva .strona_start{
margin-top:0.25rem !important;
}
.strona_prawa .mw-optimal-x.mw-optimal-js.mw-scrollbar-overflow-x:not(:hover),
.strona_lewa .mw-optimal-x.mw-optimal-js.mw-scrollbar-overflow-x:not(:hover){
overflow:auto;
}
.strona_prawa .mw-optimal-x,
.strona_lewa .mw-optimal-x{
display:flex;
flex-direction:column;
}
.strona_lewa .mw-optimal-x > div,
.strona_prawa .mw-optimal-x > div{
flex:0 0 auto;
}
.strona_start .strona .ciało_zawartości > .menu > .menu_boks:hover{
background-color:blue !important;
color:white !important;
}
.strona_start .strona .ciało_zawartości > .menu > .menu_boks:active{
background-color:grey !important;
color:white !important;
}
.strona_start .strona .ciało_zawartości > .menu > .menu_boks:not(:hover):not(:active){
background-color:white !important;
color:black !important;
}
/**/
.strona > div > .ciało_kontener > .ciało_strona > :last-child.noprint > p:last-child{
margin-bottom:0 !important;
padding-bottom:0 !important;
}
.strona > div:not(:only-child) > .ciało_kontener > *:nth-child(2) > .noprint > p:last-child,
.strona > div > .ciało_kontener:not(:only-child) > *:nth-child(2) > .noprint > p:last-child{
margin-bottom:0 !important;
padding-bottom:0 !important;
}
.strona > div > .ciało_kontener > :nth-child(2):not(:empty) + .ciało_strona,
.strona > div:not(:only-child) > .ciało_kontener > .ciało_strona,
.strona > div > .ciało_kontener:not(:only-child) > .ciało_strona{
padding-bottom:0 !important;
}
.strona > div > .ciało_kontener > *:nth-child(1) > :not(style):not(link){
margin-top:0.625rem;
}
.strona > div > .ciało_kontener > *:nth-child(1) > :not(style):not(link) + :not(style):not(link){
margin-top:initial;
}
.strona > div > .ciało_kontener > *:nth-child(2) > :not(.nawigacja):not(.nawigacja-dół):last-child{
margin-bottom:0.625rem;
}
.strona > *:not(:first-child),
.strona > div > *:not(:first-child){
margin-left:0.5rem;
margin-right:0.5rem;
}
.strona > *:nth-child(2),
.strona > div > *:nth-child(2){
margin-top:0.25rem;
margin-bottom:0.125rem;
}
.strona > *:not(:nth-child(2)):not(:first-child),
.strona > div > *:not(:nth-child(2)):not(:first-child){
margin-top:0.125rem;
margin-bottom:0.125rem;
}
.strona > *:last-child:not(:first-child),
.strona > div > *:last-child:not(:first-child){
margin-top:0.125rem;
margin-bottom:0.5rem;
}
/**/
.strona h1, .strona h2,.strona h3,.strona h4,.strona h5,.strona h6{
text-align:left;
}
.strona > div > .ciało_kontener > .ciało_strona > p:first-child{
margin-top:0;
}
.strona > div > .ciało_kontener > .ciało_strona > p:not(.br-clear):last-child{
margin-bottom:0;
}
.strona > div > .ciało_kontener > .ciało_strona > div.nawigacja.nawigacja-dół{
margin-top:0.5rem !important;
}
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).floatleft + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).floatright + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).tleft + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).tright + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).float-left-or-right + p,
.strona > div > .ciało_kontener > .ciało_strona > figure.mw-halign-left + p,
.strona > div > .ciało_kontener > .ciało_strona > figure.mw-halign-right + p{
margin-top:0;
}
@media print{
.noprint{
display:none;
}
.print{
display:block;
}
}
.gallerytext, .plainlinks{
text-align:left;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona p + ul,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona p + ol,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona p + ul,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona p + ol{
margin-top:-0.2rem;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona p,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona p{
font-size: inherit;
line-height: 1.3;
}
.strona > div > .ciało_kontener.mw-scrollbar-overflow-x{
padding-bottom:0.3125rem;
}
.strona > div > .ciało_kontener.mw-scrollbar-overflow-y{
padding-right:0.3125rem;
}
.ciało_strona h1.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading1 h1,
.ciało_strona div.mw-heading.mw-heading1 h1 code,
/**/
.ciało_strona h2.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading2 h2,
.ciało_strona div.mw-heading.mw-heading2 h2 code,
/**/
.ciało_strona h3.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading3 h3,
.ciało_strona div.mw-heading.mw-heading3 h3 code,
/**/
.ciało_strona h4.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading4 h4,
.ciało_strona div.mw-heading.mw-heading4 h4 code,
/**/
.ciało_strona h5.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading5 h5,
.ciało_strona div.mw-heading.mw-heading5 h5 code,
/**/
.ciało_strona h6.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading6 h6,
.ciało_strona div.mw-heading.mw-heading6 h6 code{
font-size:unset;
line-height:unset;
}
.ciało_strona h1.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading1{
font-size:1.6em;
}
.ciało_strona h2.mw-html-heading,
div.mw-heading.mw-heading2{
font-size:1.5em;
}
.ciało_strona h3.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading3{
font-size:1.4em
}
.ciało_strona h4.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading4{
font-size:1.3em;
}
.ciało_strona h5.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading5{
font-size:1.2em;
}
.ciało_strona h6.mw-html-heading:not(.mw-hnumber),
.ciało_strona div.mw-heading.mw-heading6{
font-size:1.1em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber{
font-size:0.4em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-7{
font-size:1.0em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-8{
font-size:0.9em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-9{
font-size:0.8em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-10{
font-size:0.7em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-11{
font-size:0.6em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-12{
font-size:0.5em;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ul,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ul,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ol,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ol,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ul,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ul,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ol,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ol{
list-style-position:inside;
margin-left:0;
margin-inline-start:0;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight{
display:flex;
flex-direction:column;
max-width:100%;
overflow-x:auto;
overflow-y:hidden;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight > pre,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight > pre{
display:block;
width:auto !important;
min-width:100%;
text-align:left;
word-wrap:break-word;
word-break:break-all;
hyphens:none;
box-sizing:border-box;
white-space:pre-wrap;
flex-shrink:0;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona code.zn_ogromne,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona code.zn_ogromne{
hyphens:auto;
word-wrap: break-word;
word-break: break-all;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link > a,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link > a{
hyphens:auto;
word-wrap: break-word;
word-break: break-word;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a{
word-break: break-all;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a > span.fonty_rodzina_sans,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a > span.fonty_rodzina_sans,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a code,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a code{
word-break:unset;
}
.ciało_strona a code{
color:unset;
}
.ciało_strona code{
display:inline;
font-size:inherit;
line-height:1.56;
word-wrap:break-word;
word-break:break-word;
}
@media all{
:not(style):not(link) ~ .strona_start{
margin-top:0.3125rem !important;
}
.strona_start p{
margin: 0.4em 0 0.5em 0;
}
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy > div.mójNagłówek > div:last-child,
.strona_start.kolumnowy > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne div > .ciało_kontener > *{
min-width:100% !important;
max-width:100% !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne .strona{
overflow:hidden !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek{
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2),
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
max-width:none !important;
width:100% !important;
margin-left:0 !important;
margin-right:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > td:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > td:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona{
flex-wrap: wrap;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div{
position:static !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0 !important;
transition:none !important;
transform:none !important;
visibility:visible !important;
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
box-sizing:border-box !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x{
transition:none !important;
transform:none !important;
position:static !important;
margin-left:0 !important;
float:none !important;
clear:none !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div{
width:100% !important;
box-sizing:border-box;
margin: 0 !important;
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div > div:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_lewa{
order:1 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa{
order:2 !important;
display:flex;
flex-direction:column;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .kontener_spis_treści a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .strona_spisu_treści > .toc_wykaz a.zaznaczone{
color: #3366cc !important;
font-weight: normal !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa{
order:3 !important;
width:100%;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy{
order:1;
height:auto !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y{
order:2;
height:100% !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div{
width:100% !important;
box-sizing:border-box !important;
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis{
max-height:100% !important;
overflow:visible !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y .toc_spis{
overflow:visible !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona{
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .menu{
display:none !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .style_strony_TOC:only-child > .kontener_spis_treści{
margin-top:0 !important;
margin-bottom:0 !important;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading{
display:block;
text-align:left;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *{
display:inline;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
display:inline-flex;
margin-left:1em;
font-size:small;
margin-right:0;
vertical-align:middle;
}
body.skin--responsive.skin-minerva .strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection,
body.skin--responsive.skin-minerva .strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
margin-left:0.3em;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .numeracja,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .numeracja{
margin-top: 0;
margin-bottom: auto;
}
}
@media all{
.strona_start.niekolumnowy > .mójNagłówek,
.strona_start.niekolumnowy > div:first-child:not(.mójNagłówek) > .rozdział,
.strona_start.kolumnowy > .strona_nadrzędna > .mójNagłówek,
.strona_start.kolumnowy > .strona_nadrzędna > div:first-child:not(.mójNagłówek) > .rozdział{
margin-top:0 !important;
}
.strona_start.niekolumnowy > .mójNagłówek,
.strona_start.niekolumnowy > div:first-child:not(.mójNagłówek) > *,
.strona_start.kolumnowy > .strona_nadrzędna > .mójNagłówek,
.strona_start.kolumnowy > .strona_nadrzędna > div:first-child:not(.mójNagłówek) > *{
margin-top:0 !important;
margin-bottom:0.25rem !important;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
figure[typeof~="mw:File"].mw-halign-left{
float:left !important;
margin:4px 4px 4px 0 !important;
}
figure[typeof~="mw:File"].mw-halign-right{
float:right !important;
margin:4px 0 4px 4px !important;
}
figure[typeof~="mw:File"].mw-halign-center{
margin:0 auto !important;
}
figure[typeof~="mw:File"]{
display:block;
max-width:100%;
overflow:auto;
}
span[typeof~="mw:File"].mw-default-size{
display:inline-block;
overflow:auto;
max-width:100%;
}
div.tright{
float:right;
margin:0 0 1em 1em;
}
div.tleft{
float:left;
margin:0 1em 1em 0;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px){
div.tright, div.tleft{
margin: 0 auto !important;
float:none !important;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.strona_start.niekolumnowy.mobilne > .strona{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
overflow:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{
min-width:auto !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
}
/*{{Kategoria|Szablony - arkusze stylów/StronaStart}}*/
i0yeu7jokopowgy8mkw3jivso49ua3l
Moduł:StronicowyParser/Tekst
828
58886
551369
542275
2026-08-11T14:42:10Z
Persino
2851
551369
Scribunto
text/plain
local p={}
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modulu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modulu);
if(nazwa_modulu_opisu~=nazwa_modulu)then
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
else
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nil,not inkludowana,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modulu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
local tekst_artykulu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
if(not tekst_artykulu_caly)then return;end;
local szablonowe_modul=require("Module:Szablonowe");
local ramka_modul=require("Module:Ramka");
local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if(szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))then
return ramka_modul.InstrukcjeWarunkowe(szablon);
end;
end;
end);
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
end;
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
return tekst_artykulu_caly;
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,inkludowana and true or dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
if(not tekst_artykulu_caly)then return;end;
if(inkludowana)then
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,nil,dokumentacja,true) or tekst_artykulu_caly;
return tekst_artykulu_caly;
end;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local ramka_modul=require("Module:Ramka");
local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
local opis=nazwa_modulu.."/opis";
local przekierowanie_opis=nil;
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_zbiorow,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=opis,tekst=true,};
if(liczba_istniejacych_zbiorow>0)then
przekierowanie_opis=techniczne_modul.PrzekierowanieDoStrony(opis);
else
opis=nil;
end;
----
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu) or nil;
----
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu,function(tablica_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
----
if(stronicowyparser_obiekty_modul.szablony_dokumentacji[nazwa_szablonu])then
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tablica_parametrow_szablonu);
if(not czy_nie_brak_parametrow)then
local nazwa_strony_opisu=nazwa_modulu.."/opis";
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu_caly;
else
local nazwa_strony_opisu=tablica_parametrow_szablonu[1];
local zawartosc=tablica_parametrow_szablonu["zawartość"];
----
local czy_nazwa_strony_opisu=parametry_modul.CzyTak(nazwa_strony_opisu);
local czy_zawartosc=parametry_modul.CzyTak(zawartosc);
if((czy_nazwa_strony_opisu)and(not czy_zawartosc))then
local opis_tak=((opis) and (nazwa_strony_opisu==opis));
local nazwa_strony_opisu_czy_przekierowanie=opis_tak and (przekierowanie_opis or nazwa_strony_opisu) or (techniczne_modul.PrzekierowanieDoStrony (nazwa_strony_opisu) or nazwa_strony_opisu);
if((opis)and((opis_tak)or((przekierowanie_opis)and(nazwa_strony_opisu==przekierowanie_opis))))then opis=nil;end;
----
local szablony_magiczne={};
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony_opisu_czy_przekierowanie,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu;
elseif(czy_zawartosc)then
return zawartosc;
else
local nazwa_strony_opisu=nazwa_modulu.."/opis";
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu_caly;
end;
end;
else
if(opis)then
local pelna_nazwa_szablonu=szablonowe_modul["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu);
if((opis==pelna_nazwa_szablonu)or((przekierowanie_opis)and(przekierowanie_opis==pelna_nazwa_szablonu)))then
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or pelna_nazwa_szablonu,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu;
end;
end;
end;
end,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return ramka_modul.InstrukcjeWarunkowe(szablon);
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu)
if(__FUNKCJA4)then
return __FUNKCJA4(nazwa_szablonu,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
end,
function(nazwa_szablonu,tabela_modyfikatorow)
return __FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
end);
end;
end,nil,nil,nil,function(tekst_artykulu,nazwa_modulu,tablica_obiektow_strony_dany_modul)
if((not inkludowana)and(opis))then
local szablony_magiczne={};
opis=przekierowanie_opis or opis;
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,opis,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA);
return tekst_artykulu_opisu;
end;
end,nil,nil,nil,__FUNKCJA_PARAMETRY);
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
end;
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
return tekst_artykulu_caly;
end;
end;
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local tablica_obiektow_strony_dany_modul_uzyskany=nil;
local tablica_parametrow_szablonu_strony={};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:techniczne");
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,true,inkludowana,function(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,dokumentacja,czy_niezakodowana)
tablica_obiektow_strony_dany_modul=tablica_obiektow_strony_dany_modul or {};
tablica_obiektow_strony_dany_modul_uzyskany=tablica_obiektow_strony_dany_modul;
if(not tekst_rozwiniety_calego_artykulu)then return;end;
local __self=szablonowe_modul:TablicaTransportuSzablonowe();
--if((__self)and(tablica_obiektow_strony_dany_modul)and(not czy_niezakodowana))then
--if(not __self.tablica_obiektow_strony_dany_modul)then __self.tablica_obiektow_strony_dany_modul={};end;
--__self.tablica_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]=tablica_obiektow_strony_dany_modul;
--end;
tekst_rozwiniety_calego_artykulu=tekst_rozwiniety_calego_artykulu and szablonowe_modul[czy_niezakodowana and "RozwijanieNiezakodowanegoSzablonu" or "RozwijanieZakodowanegoSzablonu"](__self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony,
stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu);
if(czy_nie_brak_parametrow)then return true;end;
end,
function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
if(not mw.ustring.match(pelna_nazwa_szablonu,"/"))then return true;end;
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_szablonu);
if(nazwa_artykulu=="")then
return true;
end;
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu);
if(strona)then
if(not mw.ustring.match(pelna_nazwa_szablonu,"/"))then return true;end;
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if(nazwa_artykulu=="")then
return true;
end;
end;
end,
__FUNKCJA,
__FUNKCJA2,
function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html)
return __FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,false) or nil;
end,__FUNKCJA_PARAMETRY) or nil;
return tekst_rozwiniety_calego_artykulu;
end, function(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)
return nil;
end,function(nazwa_modulu)
return tablica_parametrow_szablonu_strony;
end,stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html)
return __FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,true) or nil;
end,__FUNKCJA_PARAMETRY);
----
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^[_%s]*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
local parametry_modul=require("Module:Parametry");
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
---
local html_modul=require("Module:Html");
nazwa_strony_bez_kodow_html=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony);
local szablonowe_modul=require("Module:Szablonowe");
local pudelko_modul=require("Module:Pudełko");
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_strony_bez_kodow_html);
if(czy_nazwa_niepoprawna)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nazwa strony niepoprawna"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nazwa strony niepoprawna");
end;
end;
mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu jego zawartości: "..nazwa_strony..".");
return nil;
end;
---
local nazwa_strony_z_kodami_html=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](nazwa_strony);
local czy_istnieje;
local techniczne_modul=require("Module:Techniczne");
uchwyt_strony,tekst_artykulu,czy_istnieje = techniczne_modul.CzyStronaIstniejeJejParametry(nazwa_strony_z_kodami_html,true);
if(not uchwyt_strony)then
mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu jego uchwytu: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowy uchwyt strony"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowy uchwyt strony");
end;
end;
return nil;
end;
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"strona nie istnieje"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"strona nie istnieje");
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"zawartość strony nie istnieje"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"zawartość strony nie istnieje");
end;
end;
return nil;
end;
end;
else
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nazwa strony składa się tylko ze znaków odstępu"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nazwa strony składa się tylko ze znaków odstępu");
end;
end;
return nil;
end;
if(not czy_szablon)then
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
-----
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]%s->","");
elseif(parametry_modul.TypeFunction(czy_szablon))then
tekst_artykulu=czy_szablon(tekst_artykulu,czy_noinclude);
end;
----
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"\n[^%S\n]*<!%-%-(.-)%-%->[^%S\n]*\n","\n");
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu=__FUNKCJA_KOMENTARZE
and (__FUNKCJA_KOMENTARZE(tekst_artykulu))
or techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu);
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
local tabela_nazw={};
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=szablony_magiczne["{{ROOTPAGENAME}}"] or nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{NAMESPACE}}"]=szablony_magiczne["{{NAMESPACE}}"] or nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{PAGENAME}}"]=szablony_magiczne["{{PAGENAME}}"] or nazwy_modul["NAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{FULLPAGENAME}}"]=szablony_magiczne["{{FULLPAGENAME}}"] or nazwy_modul["PEŁNANAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{SUBPAGENAME}}"]=szablony_magiczne["{{SUBPAGENAME}}"] or nazwy_modul["NAZWASUBSTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
----
tekst_artykulu=__FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) or tekst_artykulu;
tekst_artykulu=__FUNKCJA_KONTROLNE and __FUNKCJA_KONTROLNE(tekst_artykulu) or tekst_artykulu;
----
if(not szablon_nie_opis)then
if(not dokumentacja)then
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu,nazwa_strony2 or nazwa_strony,nil,nil,nil,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
end;
end;
return tekst_artykulu;
end;
return p;
gwdju0x58vpccong8q9yvii1moaosaq
Moduł:StronicowyParser/SpisTreści
828
58945
551367
546133
2026-08-11T14:35:26Z
Persino
2851
551367
Scribunto
text/plain
local p={};
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)
local parametry_modul=require("Module:Parametry");
local ile=0;
for i,tabela_rozdzial_artykulow2_i in pairs(tabela_rozdzial_artykulow2)do
i=parametry_modul.TypeNumber(i) and i or nil;
if((i)and(i>1))then
ile=ile+#(tabela_rozdzial_artykulow2_i or {});
end;
end;
return ile;
end;
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
---
local numer_rodzaju_artykulu_poprz=numer_rodzaju_artykulu;
if(numer_rodzaju_artykulu)then
--mw.log(szablon,numer_rodzaju_artykulu,wliczaj_artykuly_tego_rozdzialu)
numer_rodzaju_artykulu=(wliczaj_artykuly_tego_rozdzialu)and numer_rodzaju_artykulu or (numer_rodzaju_artykulu+6);
end;
---
--Rozdzialy początek
local znaki_niedozwolone;
local function ParametrPierwszy(tab_artykul,czy_niedozwolone)
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
----
local znaki_niedozwolone;
if(czy_niedozwolone)then
znaki_niedozwolone=mw.ustring.match(artykul,"[|<>{}%[%]]");
end;
----
--if(artykul)then
--artykul=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(artykul,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
--artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",}
--artykul=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](artykul);
--end;
----
--if(parametry)then
-- parametry=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(parametry,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
-- parametry=parametry_modul["Odstępy"]{[1]=parametry,[2]="tak",}
-- parametry=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](parametry);
--end;
----
--if(naglowek)then
-- naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
-- naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",}
-- naglowek=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](naglowek);
--end;
----
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
end;
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
local szablony_rozwijane_przez_javascript_nazwowe_linkowe=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_nazwowe_linkowe;
----
local function RozwijanieNazwy(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
----
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(not wynik)then
local wynik,jaki_wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_rozwijane_przez_javascript_nazwowe_linkowe[nazwa_szablonu])then
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(
(tab_szablony[nazwa_szablonu])
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
)then
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_spisu_tresci~="") and ("/"..nazwa_spisu_tresci) or ""));
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
end;
end);
if(wynik)then return wynik;end;
end;
end);
return szablon,true;
elseif(nazwa_szablonu=="Br")then
return " ",false;
elseif(
(tab_szablony[nazwa_szablonu])
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
)then
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_spisu_tresci~="") and ("/"..nazwa_spisu_tresci) or ""));
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true),true;
end;
end);
if(wynik)then return wynik,jaki_wynik;end;
else
return wynik,false;
end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="br")then
return " ";
end;
end;
return szablon;
end;
if((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz==1)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
local czy_tablica=nil;local tablica_przekierowania=nil;
if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
if(not czy_tablica)then
--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",}
--tab_pozycja_elementow_w_spisie_rzeczy[1]=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tab_pozycja_elementow_w_spisie_rzeczy[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_elementow_w_spisie_rzeczy[1],"[|<>{}%[%]]");
tablica_artykulow_zebranych={tab_pozycja_elementow_w_spisie_rzeczy[1],0,false,};
else
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
if(not czy_inna_ksiazka)then
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
else
local artykul=tablica_przekierowania[2];
local parametry=tablica_przekierowania[3];
local naglowek=tablica_przekierowania[4];
czy_tablica=(artykul)and(parametry or naglowek);
end;
if(not czy_tablica)then
local aktualny_artykul_ksiazki;
if(not czy_inna_ksiazka)then
aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1];
else
aktualny_artykul_ksiazki=tablica_przekierowania[2]
or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
end;
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
else
local aktualny_artykul_ksiazki;
if(not czy_inna_ksiazka)then
aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1][1];
else
aktualny_artykul_ksiazki=tablica_przekierowania[2]
or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
end;
if(tablica_artykulow_zebranych[1]~=aktualny_artykul_ksiazki)then
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
else
tablica_artykulow_zebranych[3]=true;
end;
end;
end;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
----
if(tab_pozycja_elementow_w_spisie_rzeczy[2])then
local czy_szablon_wszystko=false;
tab_pozycja_elementow_w_spisie_rzeczy[2]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[2],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
local wynik,czy_szablon=RozwijanieNazwy(szablon,obiekt,kod);
czy_szablon_wszystko=czy_szablon_wszystko or czy_szablon;
return wynik;
end);
if(czy_szablon_wszystko)then
local frame=mw.getCurrentFrame();
tab_pozycja_elementow_w_spisie_rzeczy[2]=frame:preprocess(tab_pozycja_elementow_w_spisie_rzeczy[2]);
end;
local specjalne_modul=require("Module:Specjalne");
tab_pozycja_elementow_w_spisie_rzeczy[2]=specjalne_modul["UsuńZnakiSpecjalne"](tab_pozycja_elementow_w_spisie_rzeczy[2]);
tab_pozycja_elementow_w_spisie_rzeczy[2]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[2],[2]="tak",[4]="tak",};
end;
----
if(znaki_niedozwolone)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"niedozwolone znaki w spisach treści"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"niedozwolone znaki w spisach treści");
end;
end;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
local stara_nazwa_jednostki=nazwa_jednostki;
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
--local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
--local przekierowanie=pelna_nazwa_ksiazki..((nazwa_jednostki~="") and ("/"..nazwa_jednostki) or "");
--local strona=techniczne_modul.PrzekierowanieDoStrony(przekierowanie);
--local strona=(tablica_przekierowania)
local przekierowanie;
if(--[[strona--]]tablica_przekierowania)then
--nazwa_jednostki=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
--przekierowanie=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](przekierowanie)
przekierowanie=tablica_przekierowania[2];
if((czy_tablica)and(stara_nazwa_jednostki~=""))then
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4])
and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,}
or przekierowanie
)
or nil;
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
local czy_w_tab=tablica_artykulow_zebranych[2];
local czy_wsadzac=tablica_artykulow_zebranych[3];
if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
tablica_artykulow_zebranych[2]=1;
end;
end;
else
nazwa_jednostki=tab_pozycja_elementow_w_spisie_rzeczy[1];
if((czy_tablica)and(stara_nazwa_jednostki~=""))then
local czy_w_tab=tablica_artykulow_zebranych[2];
local czy_wsadzac=tablica_artykulow_zebranych[3];
if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
tablica_artykulow_zebranych[2]=1;
end;
end;
end;
local ile_dodac_do_poziomu_artykulu=tablica_artykulow_zebranych[2];
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[2] or tablica_przekierowania or tab_pozycja_elementow_w_spisie_rzeczy[5] or tab_pozycja_elementow_w_spisie_rzeczy[6] or ile_dodac_do_poziomu_artykulu_lub_nil) and ({nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],ile_dodac_do_poziomu_artykulu_lub_nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or nazwa_jednostki),{#przedrostek_listy--[[+(ile_dodac_do_poziomu_artykulu and ile_dodac_do_poziomu_artykulu or 0)]],przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,(numer_rodzaju_artykulu>1) and (Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)) or nil,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
--mw.logObject(tab_stare,"TYTAN1")
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
--mw.logObject(tabela_rozdzial_artykulow2,"TYTAN2")
elseif((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz>=2)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
if(not parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",};
--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
else
tab_pozycja_elementow_w_spisie_rzeczy[1]=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
if(tab_pozycja_elementow_w_spisie_rzeczy[2])then
local czy_szablon_wszystko=false;
tab_pozycja_elementow_w_spisie_rzeczy[2]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[2],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
local wynik,czy_szablon=RozwijanieNazwy(szablon,obiekt,kod);
czy_szablon_wszystko=czy_szablon_wszystko or czy_szablon;
return wynik;
end);
if(czy_szablon_wszystko)then
local frame=mw.getCurrentFrame();
tab_pozycja_elementow_w_spisie_rzeczy[2]=frame:preprocess(tab_pozycja_elementow_w_spisie_rzeczy[2]);
end;
local specjalne_modul=require("Module:Specjalne");
tab_pozycja_elementow_w_spisie_rzeczy[2]=specjalne_modul["UsuńZnakiSpecjalne"](tab_pozycja_elementow_w_spisie_rzeczy[2]);
tab_pozycja_elementow_w_spisie_rzeczy[2]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[2],[2]="tak",[4]="tak",};
end;
if(tab_pozycja_elementow_w_spisie_rzeczy[3])then
tab_pozycja_elementow_w_spisie_rzeczy[3]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[3],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
tab_pozycja_elementow_w_spisie_rzeczy[3]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[3],[2]="tak",[4]="tak",};
end;
if(tab_pozycja_elementow_w_spisie_rzeczy[4])then
tab_pozycja_elementow_w_spisie_rzeczy[4]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[4],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
tab_pozycja_elementow_w_spisie_rzeczy[4]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[4],[2]="tak",[4]="tak",};
end;
local wiki_modul=require("Module:Wiki");
-----
local numer_rodzaju_artykulow_w_nie_podreczniku=numer_rodzaju_artykulu+1;
-----
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku])then
tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku]={};
end;
--local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[1])and((tab_pozycja_elementow_w_spisie_rzeczy[2])or(tab_pozycja_elementow_w_spisie_rzeczy[3])or(tab_pozycja_elementow_w_spisie_rzeczy[4])or(tab_pozycja_elementow_w_spisie_rzeczy[5])or(tab_pozycja_elementow_w_spisie_rzeczy[6])))and({tab_pozycja_elementow_w_spisie_rzeczy[1],tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[3],tab_pozycja_elementow_w_spisie_rzeczy[4],tab_pozycja_elementow_w_spisie_rzeczy[5],nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or tab_pozycja_elementow_w_spisie_rzeczy[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,false,Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2),};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
end;
--mw.logObject(tabela_rozdzial_artykulow2,"TYTAN")
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
end;
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local specjalne_modul=require("Module:Specjalne");
local szablonowe_modul=require("Module:Szablonowe");
local html_modul=require("Module:Html");
local parametry_modul=require("Module:Parametry");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial_na_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(rozdzial,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
-----
local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
-----
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
----
local dodatek=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(dodatek)then return dodatek;end;
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_szablon_link_intelignetny)then
return (not tab_szablon_link_intelignetny[4]) and tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
else
local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
end;
local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
----
if(szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu[nazwa_szablonu])then
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul);
return szablon;
end;
end);
if(wynik)then return wynik;end;
----
local rozdzial_na_tekst=mw.ustring.gsub(szablon,"^{{[^{}|]*|([^{}|]*).*}}$","%1");
return rozdzial_na_tekst;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif((obiekt~="MATH")and(obiekt~="GALERIA")and(obiekt~="MAPAOBRAZU")and(obiekt~="INNEPRE"))then
local rozdzial_na_tekst=specjalne_modul["UsuńKomentarze"](szablon);
rozdzial_na_tekst=specjalne_modul["ZamieńLinkiZewnętrzneNaTekst"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["ZamieńLinkiWewnętrzneNaTekst"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńSzablonyStylów"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZnaczniki"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńKategorie"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńWywołaniaPlików"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńInterwiki"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
return rozdzial_na_tekst;
else
return "";
end;
end);
----
rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZbędneBiałeZnaki"](rozdzial_na_tekst);
return rozdzial_na_tekst;
end;
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki))then return 0;end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local nazwa_modulu=pelna_nazwa_ksiazki..((nazwa_spisu_tresci~="")and("/"..nazwa_spisu_tresci) or "");
---
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
or nil;
local pelna_nazwa_spisu_tresci_szablonowa=pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej and (((nazwa_przestrzeni=="")and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)or nil;
---
local techniczne_modul=require("Module:Techniczne");
local szablonowe_modul=require("Module:Szablonowe");
local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu);
local przekierowanie_spisu_tresci=nil;
local tab_nazwa_spisow_przekierowaniowych={};
--[[if(adres_ksiazki_glownego_spisu_tresci)then
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
end;]]
--if(adres_ksiazki_glownego_spisu_tresci)then
-- local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1];
-- local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2];
-- local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3];
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
-- end;
if(strona)then
local html_modul=require("Module:Html");
strona=html_modul.DecodeHtml(strona,true);
local tabela_nazw={};
local pelna_nazwa_ksiazki_przekierowania=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw);
if(pelna_nazwa_ksiazki_przekierowania~=pelna_nazwa_ksiazki)then return 0;end;
nazwa_modulu=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw);
nazwa_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw);
przekierowanie_spisu_tresci=nazwa_spisu_tresci;
----
pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
or nil;
pelna_nazwa_spisu_tresci_szablonowa=pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej and (((nazwa_przestrzeni=="")and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)or nil;
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
--local tekst_rozwiniety_calego_artykulu=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,true);
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
if(__FUNKCJA_ZBIERANIA_DANYCH)then
__FUNKCJA_ZBIERANIA_DANYCH(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
----
local techniczne_modul=require("Module:Techniczne");
----
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local szablony_kompletowania_stron_woluminu=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
local szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji;
local szablony_ozdobne_stron_woluminu=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
--[[local pelna_nazwa_spisu_tresci_wzor="^("..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or "")
..techniczne_modul["WzórNazwyStrony"](((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki)
..((nazwa_spisu_tresci~="")and ("/"..nazwa_spisu_tresci) or "")
.."(/[Ss][Pp][Ii][Ss][%s_]+[Tt][Rr][Ee][ŚśSs][Cc][Ii]))$";]]
--local tablica_analizy_obiektow_strony_dany_modul={};
--local tablica_danych_parametrow_szablonu_strony={};
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,--[[function(pelna_nazwa_szablonu,tabela_modyfikatorow)
local pelna_nazwa_spisu_tresci,strona_ze_spisem_tresci=mw.ustring.match(pelna_nazwa_szablonu,pelna_nazwa_spisu_tresci_wzor);
if(pelna_nazwa_spisu_tresci and strona_ze_spisem_tresci)then
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
if(tekst)then
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end;
local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki];
if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
if(not tablica_ksiazki.spis_tresci[nazwa_spisu_tresci])then tablica_ksiazki.spis_tresci[nazwa_spisu_tresci]={};end
local tablica_spis_tresci=tablica_ksiazki.spis_tresci[nazwa_spisu_tresci];
tablica_spis_tresci.tekst=tekst;
tablica_spis_tresci.adres_wzgledny_spisu_tresci=strona_ze_spisem_tresci;
----
return tekst;
end;
end;
end]]nil,function(str,pelna_nazwa_strony,tablica_analizy_dany_modul,czy_naglowek)
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
----
local bez_kodow=not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(bez_kodow)then return;end;
----
local function PomijajLinkiOrazLicencje(szablon)
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu];
if(czy_szablony_licencji)then return true;end;
local czy_szablony_ozdobne=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu[nazwa_szablonu];
if(czy_szablony_ozdobne)then return true;end;
--local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
--local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,nazwa_szablonu);
--if(wynik)then return wynik;end;
----
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]))then return true;end;
local tab_wyzyskane_od_nazwy_szablonu=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_wyzyskane_od_nazwy_szablonu)then return true;end;
end);
end;
----
local CzySzablonLinkLubLicencja=function(szablon)
local ile_szablon_linki_lub_licencje=0;
local _,ile=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("(SZABLON)"),
function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local wynik=PomijajLinkiOrazLicencje(szablon);
if(wynik)then ile_szablon_linki=ile_szablon_linki+1;end;
return nil;
end);
if((ile>0)and(ile_szablon_linki_lub_licencje>0))then return true;end;
end;
local bez_kodow_linkow_wewnetrznych=(
not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("LINK[WZ]"))
and not CzySzablonLinkLubLicencja(szablon)
)
or not mw.ustring.match(szablon,"\n([#:*;]+)[^%S\n]*([%w%p]*)[^%S\n]*([^\n]+)")
or not mw.ustring.match(szablon,"\n([#:*;]*)[^%S\n]*([%w%p]+)[^%S\n]*([^\n]+)");
if(bez_kodow_linkow_wewnetrznych)then return;end;
local wynik=PomijajLinkiOrazLicencje(szablon);
if(wynik)then return;end;
-----
return "";
--[[elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+][^%S\n]+[^|\n]*","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|%-","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|%+","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|","\n\n");
return szablon;]]
end;
return;
end;
if(not czy_naglowek)then
str=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_strony,tablica_analizy_dany_modul,function(szablon,obiekt,kod)
local wynik=FunkcjaIteratoraTekstuZakodowego(szablon,obiekt,kod);
if(wynik)then return wynik;end;
return nil,true;
end);
return str;
end;
return str;
end,function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end);
----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_jakie_nie_rozdzialy=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local jakie_nie_rozdzialy=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_nie_rozdzialy);
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_nie_rozdzialy,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local szablonowe_modul=require("Module:Szablonowe");
local tab_dozwolonych_szablonow_z_elementami_spisu_artykulow=stronicowyparser_obiekty_modul.tab_dozwolonych_szablonow_z_elementami_spisu_artykulow;
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local specjalne_modul=require("Module:Specjalne");
local tablica_artykulow_zebranych={};
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
----
--local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
--local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
----
local maksymalny_rozmiar_rozdzialu_zerowego=50;
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)
--rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
--if(poziom_rozdzialu)then
-- text=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(text,nil,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
--end;
if(not tabela_artykulow)then tabela_artykulow={};end;
local spreparowany_uzyskany_tekst_rozdzialu=nil;
----
local tabela_rozdzial_artykulow;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
----
tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
----
local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
spreparowany_uzyskany_tekst_rozdzialu=rozdzial_na_tekst;
end;
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
if(czy_spis_rzeczy_napis_wprowadzenia_tekstu)then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if((((poziom_spisu_tresci>0)and(poziom_rozdzialu>0))or((poziom_spisu_tresci<=0)and(poziom_rozdzialu<=0)))and(math.abs(poziom_spisu_tresci or 0)<math.abs(poziom_rozdzialu)))then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
if((poziom_rozdzialu or 0)>0)then
if(not iter)then
iter=mw.ustring.gmatch(rozdzial,"([^\n]+)");
end;
local wartosc=iter();
if(not wartosc)then
czy_rozdzial=true;
iter=nil;
else
return "","",wartosc,true;
end;
else
czy_rozdzial=true;
end;
end;
local function dane_iteratora()
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=iter();
if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
else
return nil;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
else
return dane_iteratora();
end;
end;
return dane_iteratora();
end;
end;
----
local function LiniaArtykulow(linia)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local szablon,obiekt,kod=iter();
if((not szablon) or (not kod) or(not obiekt))then return {};end;
local function SzablonAnalizujKompletnosc(szablon)
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
return stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu[nazwa_szablonu];
end);
return wynik;
end;
-----
local tak_pierwsze=((obiekt=="SZABLON") and SzablonAnalizujKompletnosc(szablon) or nil);
-----
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local tak_drugie=SzablonAnalizujKompletnosc(szablon);
if(tak_pierwsze)then
if(tak_drugie)then
linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")(%s*)("..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")","%1,%2%3");
end;
else
if(tak_drugie)then
linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")(%s*)(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")","%1,%2%3");
end;
end;
end;
end;
local tabela_linii_artykulow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykulow,1 do
tabela_linii_artykulow[i]=mw.ustring.gsub(tabela_linii_artykulow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykulow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local nie_pomijaj_tego_rozdzialu=false;
if((not przedrostek_listy)or(#przedrostek_listy==0))then
local rozdzial,czy_z_kropka=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(((rozdzial)and(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego))or(not rozdzial))then
nie_pomijaj_tego_rozdzialu=true;
end;
else
local czy_pominac_ten_rozdzial_jako_linie=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrostek_listy,linia,true,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
if(not czy_pominac_ten_rozdzial_jako_linie)then
nie_pomijaj_tego_rozdzialu=true;
else
nie_pomijaj_tego_rozdzialu=false;
end;
end;
if(nie_pomijaj_tego_rozdzialu)then
local ile=0;
local linia_rozwazana=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(linia,nil ,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,function(szablon,obiekt,kod--[[,czy_sam_siebie]])
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
local czy_link=linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]
or inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]
or stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu ,tablica_danych_parametrow_szablonu_strony,kod);
local czy_szablon=czy_link or szablony_kompletowania_stron_woluminu[nazwa_szablonu]
or szablony_licencji[nazwa_szablonu]
--or szablony_ozdobne_stron_woluminu[nazwa_szablonu];
if(czy_link)then ile=ile+1;end;
return czy_szablon,obiekt,kod;
end);
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyLinkWewnętrzny"](szablon))then
ile=ile+1;
return true,obiekt,kod;
end;
elseif(obiekt=="LINKZ")then
ile=ile+1;
return true,obiekt,kod;
end;
end);
----
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
----
local nowa_linia=false;
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
--if((czy_spis_rzeczy_napis_wprowadzenia_tekstu)and(numer_podtablicy_w_tablicy>2))then return;end;
if((czy_rozdzial_centrowany)and(w_rozdziale)and(czy_linia_uwzgledniana)and(tab_stare[2])and(tab_stare[2][1]))then
tab_stare[2][1]=tab_stare[2][1]+1;
end;
if(not w_rozdziale)then
local function CzyZaliczac()
return ((not mw.ustring.match(linia,"^%w+%p+"))
and mw.ustring.match(linia,"^%s*'*%s*%w+"));
--or mw.ustring.match(linia,"^%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("LINKZ"));
end;
if(nowa_linia)then
tab_stare[2][4]=true;
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
elseif(((poziom_rozdzialu)or(#(przedrostek_listy or "")>0))and((ile>1)or(CzyZaliczac())))then
nowa_linia=true;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
----
local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
tab_stare[2][4]=true;
tab_stare[6]=(numer_podtablicy_w_tablicy>2) and 0 or nil;
tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy]={};
table.insert(tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy],tab_stare);
else
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
end;
else
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
end;
end;
end;
local function AnalizaLiniiObiekty(linia_rozwazana)
local tab_linia=LiniaArtykulow(linia_rozwazana);
for k=1,#tab_linia,1 do
local iterator2=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tab_linia[k],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local tab_nieobslugiwane=nil;
for szablon,obiekt,kod in iterator2 do
local czy_szablon=(obiekt=="SZABLON");local czy_link=((obiekt=="LINKW")or(obiekt=="LINKZ"));
if(czy_szablon or czy_link)then
local przerwij=nil;
if(czy_szablon)then
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu ,tabela_modyfikatorow)
----
--local przerwij=nil;
local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_spisu)then
if(tabela_spisu[1]==true)then
--local tabela_parametrow_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil ,tablica_danych_parametrow_szablonu_strony,kod);
local numer_link=tabela_spisu["numer_link"];
for name,value in pairs(tabela_parametrow_szablonu)do
if(name~=numer_link)then
local kod_w_nie_obslugiwanych=tabela_parametrow_szablonu[name];
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(kod_w_nie_obslugiwanych,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
if(not tab_nieobslugiwane)then tab_nieobslugiwane={};end;
for szablon,obiekt,kod in iter do
if(not tab_nieobslugiwane[obiekt])then tab_nieobslugiwane[obiekt]={};end;
tab_nieobslugiwane[obiekt][kod]=true;
end;
end;
end;
local tyt=tabela_parametrow_szablonu[numer_link];
przedrostek_listy="";
tekstowy_przedrostek,szablon=mw.ustring.match(tyt,"^'*[^%S\n]*([%d%.]*)[^%S\n]*([^\n]-)'*$");
przerwij=true;
else
przedrostek_listy="";
tekstowy_przedrostek=tabela_parametrow_szablonu[tabela_spisu["numer"]];
szablon=tabela_parametrow_szablonu[tabela_spisu["link"]];
przerwij=true;
end;
end;
end);
end;
--[[if(przerwij)then
local iterator3=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
for szablon2,obiekt2,kod2 in iterator3 do
if(obiekt2=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon2,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod2);
local tabela_linku=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_linku)then
szablon=szablon2;
break;
end;
elseif(obiekt2=="LINKW")then
szablon=szablon2;
break;
end;
end;
end;]]
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_elementow_w_spisie_rzeczy;local numer_rodzaju_artykulu_poprz;local id;local parametry_szablonu;local kom;
local link_szablon=nil;
local czy_obslugiwane=nil;
local CzyObslugiwane=function()
local wartosc=((tab_nieobslugiwane[obiekt])and(tab_nieobslugiwane[obiekt][kod]));
czy_obslugiwane=wartosc;
return (not wartosc);
end;
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
local linia_artykokow=tab_linia[k];
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]]);
--mw.log()
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
end;
--mw.logObject(tabela_rozdzial_artykulow)
else
link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
end;
--[[if(przerwij)then break;end;]]
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
---
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu_licencji,nazwa_szablonu_licencji,tabela_modyfikatorow_licencji)
if(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu_licencji])then
if(tabela_parametrow_szablonu_licencji)then
local autor=tabela_parametrow_szablonu_licencji["Autor"];
local szkoly=tabela_parametrow_szablonu_licencji["Ukończone szkoły"];
local email=tabela_parametrow_szablonu_licencji["Email"];
local dotyczy=tabela_parametrow_szablonu_licencji["Dotyczy"];
local licencjonowanie=tabela_parametrow_szablonu_licencji["Licencjonowanie"];
local umowa_prawna=tabela_parametrow_szablonu_licencji["Umowa prawna"];
local konsekwencje=tabela_parametrow_szablonu_licencji["Konsekwencje"];
local frame=mw.getCurrentFrame();
if(autor~=nil)then
autor=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(autor,nazwa_modulu ,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(szkoly~=nil)then
szkoly=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szkoly,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(email~=nil)then
email=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(email,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(dotyczy~=nil)then
dotyczy=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(dotyczy,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(licencjonowanie~=nil)then
licencjonowanie=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(licencjonowanie,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(umowa_prawna~=nil)then
umowa_prawna=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(umowa_prawna,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(konsekwencje~=nil)then
konsekwencje=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(konsekwencje,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
return true;
elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera");
end;
end;
end);
if(wynik)then break;end;
end;
end;
end;
end;
end;
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---rozdzial_tab[1]=rozdzial;rozdzial_tab[2]=linia rozdziału
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
--mw.logObject(tabela_artykulow);
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
end;
function p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
local parametry_modul=require("Module:Parametry");
if(not parametry_modul.TypeTable(tabela_artykulow))then return;end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
for _,tab_lista in ipairs(tabela_artykulow)do
if(tab_lista[2])then
for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
local artykul_w_bazie=artykul_w_bazie_element[1];
local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
if(jakie_spisy_tresci[artykul_bez_naglowka_w_bazie])then
return artykul_bez_naglowka_w_bazie;
end;
end;
end;
end;
end;
function p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,__FUNKCJA_SPISU_RZECZY,__FUNKCJA_ZBIERANIA_DANYCH)
local adres_ksiazki_glownego_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local nazwy_modul=require("Module:Nazwy");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local ile2,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki,tekst=true,};
if(ile2>0)then
local strona_spisu_tresci=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
if(strona_spisu_tresci)then
local html_modul=require("Module:Html");
strona_spisu_tresci=html_modul.DecodeHtml(strona_spisu_tresci,true);
local tabela_nazw={};
local nazwa_przestrzeni2=nazwy_modul["NAZWAPRZESTRZENI"](strona_spisu_tresci,tabela_nazw);
local nazwa_przestrzeni_ksiazki2=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
local nazwa_ksiazki2=(nazwa_przestrzeni_ksiazki2=="")
and nazwy_modul["NAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw)
or nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
----
if((nazwa_przestrzeni~=nazwa_przestrzeni2)or(nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki2)or(nazwa_ksiazki~=nazwa_ksiazki2))then
if(((nazwa_przestrzeni2==nazwy_np_modul.Main)or(nazwa_przestrzeni2==nazwy_np_modul.Wikijunior))or(((nazwa_przestrzeni2==nazwy_np_modul.Wikibooks)or(nazwa_przestrzeni2==nazwy_np_modul.User))and(nazwa_przestrzeni_ksiazki2~="")))then
----
adres_ksiazki_glownego_spisu_tresci={nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,};
local wynik=__FUNKCJA_SPISU_RZECZY and __FUNKCJA_SPISU_RZECZY(nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2) or nil;
if((wynik or 0)==1)then
return 1;
end;
----
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki=nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2;
pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
else
return 2;
end;
end;
end;
end;
local parametry_modul=require("Module:Parametry");
local function Spis(tablista_artykulow,spis_tresci,tab_inne_spisy,nazwa_glownego_spisu,numer)
if((parametry_modul.TypeTable(tablista_artykulow)) and parametry_modul["CzySąElementyTablicy"](tablista_artykulow))then
local czy_spis_tresci_table=parametry_modul.TypeTable(spis_tresci);
local spis_tresci_strona=czy_spis_tresci_table and spis_tresci[1] or spis_tresci;
----
local przekierowanie_strona=czy_spis_tresci_table and spis_tresci[2] or nil;
local tab_element={[1]={((not spis_tresci) and "Główny spis treści" or ("Spis treści - "..spis_tresci_strona)),{((spis_tresci) and 1 or nil),nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
---
if(not tablista_artykulow[1][1][2][1])then
for numer,tab_lista in ipairs(tablista_artykulow[1])do
if(numer>1)then
tab_element[numer]=tab_lista;
end;
end;
table.remove(tablista_artykulow,1);
end;
---
for _,tab_lista in ipairs(tablista_artykulow)do
local numer_rozdzialu=tab_lista[1][2][1];
local czy_rozdzial_centrowany=tab_lista[1][2][4];
if(numer_rozdzialu>0)then
tab_lista[1][2][1]=numer_rozdzialu+1;
end;
if(czy_rozdzial_centrowany)then break;end;
end;
---
numer=numer+1;
---
--if(not tablista_artykulow)then tablista_artykulow={};end;
----
table.insert(tablista_artykulow,1,tab_element);
if(spis_tresci)then
if(not tab_inne_spisy)then tab_inne_spisy={};end;
table.insert(tab_inne_spisy,spis_tresci);
if(not tablista_artykulow[1][2])then tablista_artykulow[1][2]={};end;
local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{0,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/" ..spis_tresci_strona.."]]",false,};
table.insert(tablista_artykulow[1][2],1,tab_stare);
end;
end;
return tablista_artykulow,tab_inne_spisy,numer;
end;
local function InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer)
--mw.logObject(tablista_artykulow,"TYTAn123fhh");
local tablista_artykulow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
--mw.logObject(tablista_artykulow_iter,spis_tresci);
----
if((tablista_artykulow_iter)and(parametry_modul.TypeTable(tablista_artykulow_iter)))then
tablista_artykulow_iter,tab_inne_spisy,numer=Spis(tablista_artykulow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,},tab_inne_spisy,nil,numer);
for _,value in ipairs(tablista_artykulow_iter)do
if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
table.insert(tablista_artykulow,value);
end;
end;
return tablista_artykulow,tab_inne_spisy,numer;
end;
local function SpisRzeczy(tabela_artykulow,tab_inne_spisy)
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
if(artykul_spisu_rzeczy)then
local numer=1;
tabela_artykulow,tab_inne_spisy,numer=Spis(tabela_artykulow,nil,tab_inne_spisy,"",numer);
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tabela_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
return tabela_artykulow,tab_inne_spisy;
end;
local adres_ustawien=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "").."NawigacjaSpecjalna/Nawigacja/"..pelna_nazwa_ksiazki;
----
adres_ustawien=techniczne_modul.PrzekierowanieDoStrony(adres_ustawien) or adres_ustawien;
----
local tekst=techniczne_modul.WikikodStrony{["przestrzeń"]="",["nazwa"]=adres_ustawien,};
if(not tekst)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji={};
local szablonowe_modul=require("Module:Szablonowe");
local tekst_zakodowany=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,nil,nil);
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zakodowany,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji);
local szablon_uklad_autonawigacji;
local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
local tabela_parametrow_szablonu_uklad_autonawigacji;
local nazwa_szablonu_uklad_autonawigacji;
local tabela_modyfikatorow_uklad_autonawigacji;
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,kod,adres_ustawien,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
tabela_parametrow_szablonu_uklad_autonawigacji=tabela_parametrow_szablonu;
nazwa_szablonu_uklad_autonawigacji=nazwa_szablonu;
tabela_modyfikatorow_uklad_autonawigacji=tabela_modyfikatorow;
if(nazwa_szablonu==stronicowyparser_obiekty_modul.uklad_autonawigacji)then
szablon_uklad_autonawigacji=szablon;
return true;
end;
end);
if(wynik)then break;end;
end;
end;
if(not szablon_uklad_autonawigacji)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
--local tabela_parametrow_szablonu_uklad_autonawigacji,nazwa_szablonu_uklad_autonawigacji,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon_uklad_autonawigacji);
if(not tabela_parametrow_szablonu_uklad_autonawigacji)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local parametry_modul=require("Module:Parametry");
local automat_manualny=tabela_parametrow_szablonu_uklad_autonawigacji["automat manualny"];
----
local html_modul=require("Module:Html");
----
local czy_automat_manualny=(automat_manualny) and parametry_modul.CzyTak(automat_manualny) or nil;
if(czy_automat_manualny)then
local sub_nazwa_spis_tresci;
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
spis_tresci=spis_tresci and html_modul.DecodeHtml(spis_tresci,true) or nil;
if(parametry_modul.CzyTak(spis_tresci))then
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelna_nazwa_ksiazki_spisu_tresci=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci,tabela_nazw);
if(pelna_nazwa_ksiazki_spisu_tresci==pelna_nazwa_ksiazki)then
sub_nazwa_spis_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci,tabela_nazw);
else
sub_nazwa_spis_tresci="";
end;
else
sub_nazwa_spis_tresci="";
end;
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,sub_nazwa_spis_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local frame=mw.getCurrentFrame();
for name,value in pairs(tabela_parametrow_szablonu_uklad_autonawigacji)do
tabela_parametrow_szablonu_uklad_autonawigacji[name]=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(value,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,function(szablon,obiekt,kod)
if(obiekt=="ZMIENNA")then
szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)|([^{}]-)}}}","{{(((}}%1{{!}}%2{{)))}}");
szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)}}}","{{(((}}%1{{)))}}");
return szablon;
end;
end),};
end;
local nazwy_modul=require("Module:Nazwy");
local bez_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez spisów treści"];
local czy_bez_spisow_tresci=(bez_spisow_tresci) and parametry_modul.CzyTak(bez_spisow_tresci) or nil;
local bez_analizy_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez analizy spisów treści"];
local czy_bez_analizy_spisow_tresci=(bez_analizy_spisow_tresci) and parametry_modul.CzyTak(bez_analizy_spisow_tresci) or nil;
----
local tab_inne_spisy;local nazwa_glownego_spisu;
local tablista_artykulow;
local licencja;
local numer=1;
----
--local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
----
local tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;local tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;local przekierowanie_spisu_tresci;
if(not czy_bez_spisow_tresci)then
local spis_tresci_main=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
if(spis_tresci_main)then
spis_tresci_main=html_modul.DecodeHtml(spis_tresci_main,true);
---
spis_tresci_main=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci_main,[2]=pelna_nazwa_ksiazki,};
end;
local tabela_nazw={};
local pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci=parametry_modul.CzyTak(spis_tresci_main)
and nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci_main,tabela_nazw)
or pelna_nazwa_ksiazki;
if(pelna_nazwa_ksiazki~=pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci)then
return 0;
end;
nazwa_glownego_spisu=parametry_modul.CzyTak(spis_tresci_main)
and nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci_main,tabela_nazw)
or "";
else
nazwa_glownego_spisu="";
end;
if((not czy_bez_spisow_tresci)and(not czy_bez_analizy_spisow_tresci))then
tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_glownego_spisu,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
if(przekierowanie_spisu_tresci)then
nazwa_glownego_spisu={przekierowanie_spisu_tresci,nazwa_glownego_spisu,};
end;
if((not tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika)or(tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika==0))then
return tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
end;
local IteratorSpisTresci=function()
local liczba=1;
return function()
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści "..liczba];
liczba=liczba+1;
return spis_tresci;
end;
end;
local iter=IteratorSpisTresci();
tablista_artykulow=tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
tablista_artykulow,tab_inne_spisy,numer=Spis(tablista_artykulow,nil,tab_inne_spisy,nazwa_glownego_spisu,numer);
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tablista_artykulow);
if(artykul_spisu_rzeczy)then
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
for spis_tresci in iter do
---
if(not parametry_modul.CzyTak(spis_tresci))then return;end;
spis_tresci=html_modul.DecodeHtml(spis_tresci,true);
spis_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci,[2]="",};
---
tablista_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer);
end;
end;
----
local IteratorFun=function()
local liczba=1;
local STRONA=function(liczba)return liczba*2-1;end;
local NAZWA=function(liczba)return liczba*2;end;
return function()
local strona=tabela_parametrow_szablonu_uklad_autonawigacji[STRONA(liczba)];
local nazwa=tabela_parametrow_szablonu_uklad_autonawigacji[NAZWA(liczba)];
liczba=liczba+1;
return strona,nazwa;
end;
end;
local tablica_stron_ksiazki={};
local tablica_stron_inne={};
local iter=IteratorFun();
local ksiazkawe_modul=require("Module:Książkowe");
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local dodatkowe_artykuly=nil;
local tablica_artykulow_zebranych={};
local tab_nazwa_spisow_przekierowaniowych={};
local dodatkowe_artykuly=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local tabela_rozdzial_artykulow=nil;
----
local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"")
or nil;
local pelna_nazwa_spisu_tresci_szablonowa=pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej and (((nazwa_przestrzeni=="")and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)or nil;
----
--local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
----
for strona,nazwa in iter do
local function ZbieranieDanychStronZAutonawigacji()
if(not parametry_modul.CzyTak(strona))then return;end;
strona=html_modul.DecodeHtml(strona,true);
nazwa=parametry_modul.CzyTak(nazwa) and html_modul.DecodeHtml(nazwa,true) or nil;
if(not dodatkowe_artykuly)then
if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
table.insert(tablista_artykulow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
tabela_rozdzial_artykulow=tablista_artykulow[#tablista_artykulow];
end;
---
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykulow,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare)
if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_stare[1]);
local adres=czy_table_baza_artykulu and tab_stare[1][1] or tab_stare[1];
local czy_w_podreczniku=tab_stare[5];
local kod_jezyka_koncowy=czy_table_baza_artykulu and tab_stare[1][5] or nil;
local kod_projektu_koncowy=czy_table_baza_artykulu and tab_stare[1][6] or nil;
----
table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),nazwa,czy_w_podreczniku,});
----
table.insert(tabela_rozdzial_artykulow[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
end;
local numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy;
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy,tabela_rozdzial_artykulow,tablica_artykulow_zebranych,true,{strona,nazwa,},nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",pelna_nazwa_spisu_tresci_szablonowa,pelna_nazwa_ksiazki,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nil,nil,tab_nazwa_spisow_przekierowaniowych,--[[]]"*","",false,"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]");
end;
ZbieranieDanychStronZAutonawigacji();
end;
----
return tablista_artykulow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
end;
return p;
76u85u50xlczlalv78rtc6en0ogusiv
Szablon:LinkSpecjalnaUstęp
10
59849
551507
468894
2026-08-11T22:04:25Z
Persino
2851
551507
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|Special|Specjalna}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude
0ssmmmll26lxg334ox4ndbqmm9ah659
Pomoc:Spis treści/Szablony/Tom IV
12
60159
551550
549722
2026-08-12T04:46:26Z
Persino
2851
/* Szablony dokumentacji systemowej {{s|Man}} */
551550
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Podrozdział|Pomoc Wikibooks - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
== Szablony pudełek formatujące tekst ==
* {{s|---}} - szablon powoduje wstawienie w treść dokumentu kreski, zbudowany przy pomocy znacznika {{Tag|hr|pojedynczy}}.
----
* {{s|F}} i {{s|F*}} - szablony, blokowego (ten pierwszy) i liniowego (ten drugi), do formatowania tekstu.
* {{s|Kapitaliki}} i {{s|Kap}} (przekierowanie do tego ostatniego) - szablon przekształca tekst na tekst pisany kapitalikami.
* {{s|Rozstrzelony}} i {{s|Roz}} - szablon powoduje rozstrzelenie liter w tekście.
* {{s|Un}} - szablon wyświetla tekst podkreślony, zastępuje tag {{Tag|u}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
----
* {{s|Centruj}} i {{s|Ce}} (przekierowanie do tego ostatniego) - szablony powodujące wycentrowania jednej lub kilku linii tekstu.
* {{s|CentrujStart}} i {{s|CentrujKoniec}} - szablony, otwierający i zamykające, co pomiędzy nimi jest tekst, który należy wycentrować.
* {{s|CentrujStart2}} i {{s|CentrujKoniec2}} - szablon, otwierający i zamykający, zbudowany w oparciu o tabelkę, z marginesami, tzn. lewym i prawym, automatycznymi, o określonym rozmiarze.
* {{s|Ruby}} i {{s|Ruby2}} - szablony wyświetlające tekst nad znakami tekstu jakiś inny tekst, a za nim jest jeszcze znów inny tekst.
* {{s|Tab}} - szablon używany do tworzenia wcięć pierwszej linii akapitu.
----
* {{s|Summary}} - szablon przeznaczony do używania na stronach indeksowych, obejmuje spis treści stron z przestrzeni głównej, które mają być pobrane do epuba i wyszczególnione w epub-owym spisie treści jako osobna pozycja.
* {{s|Tryb ciemny}} - szablon służy do przełączania pomiędzy dwoma alternatywnymi wersjami tekstu – wersją główną, dostosowaną do trybu jasnego i wersją pomocniczą dostosowaną do trybu ciemnego.
* {{s|JustowanieStart}} i {{s|JustowanieKoniec}}, {{s|JustowanieStart2}} i {{s|JustowanieKoniec2}} - szablony startowe i zamykające do justowania tekstu.
=== Szablony z zawartością ===
* {{s|Dane tekstu}} - zawiera informacje na temat całej pracy (podręcznika) i jego podartykułów na każdej jego stronie.
* {{s|Numerowanie w tabeli}} - szablon do generowania tabeli z ułatwionym wprowadzaniem treści kolumny z liczba porządkową.
==== Szablony opisujące coś ====
* {{s|EfektKodów}} - szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem.
* {{s|OpisKsiążek}} - szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}} używając kolejno szablonów {{s|S}} i {{s|M}}, lub podając nazwę linku, który jest wyświetlany jak zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|ly}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane.
== Szablony czasu ==
* {{s|Czas}} - szablon służy do do wyświetlania sformatowanego czasu.
* {{s|Data wydania}} - zwraca datę wydania dzieła i liczbę dni, miesięcy lub lat która od tej daty upłynęła.
* {{s|Dts}} - szablon jest używany, aby prawidłowo sortować daty w tabelach. Daty w tabelach są prawidłowo sortowane wyłącznie, gdy podane są w formacie rok-miesiąc-dzień, który nie jest powszechnie używany.
* {{s|Dzień gregoriański}} - szablon zwraca liczbę dni gregoriańskich jakie upłynęły od pierwszego roku pierwszego miesiąca i dnia.
* {{s|ISYEARLEAP}} - szablon zwraca "1", jeśli rok podany jako pierwszy parametr jest przestępny oraz "0" w przeciwnym wypadku.
* {{s|Lat lub miesięcy temu}} - zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty.
* {{s|MONTHMIA}} - szablon zwraca nazwę miesiąca w mianowniku.
* {{s|MONTHMSC}} - szablon zwraca nazwę miesiąca w miejscowniku.
* {{s|MONTHNAME}} - zwraca nazwę miesiąca w dopełniaczu dla parametru numer miesiąca.
* {{s|MONTHNUMBER}} - szablon zwraca numer miesiąca dla parametru nazwa miesiąca.
* {{s|NUMBEROFDAYS}} - szablon zwraca liczbę dni w miesiącu.
* {{s|Wiek w dniach}} - zwraca liczbę dni pomiędzy dwoma datami.
=== Ramy czasowe (głosowanie) i wkład użytkownika ===
* {{s|Głosowanie}}, {{s|Głosowanie2}} - {{s|Ramy czasowe zdarzenia}} - szablony te określają ramy czasowe pomiędzy, którymi odbywa się głosowanie na polskim {{NAZWASERWISU|link=tak|po=ie}}.
** {{s|Głosowanie/include}} - szablon do czasowych zdarzenia głosowania.
** {{s|Głosowanie/wynik}} - szablon potrzebny do przedstawiania wyników głosowania.
** {{s|Ramy czasowe zdarzenia/tabela}} - szablon do zakończonej lub trwającej dyskusji.
** {{s|Ramy czasowe zdarzenia/LSnK}} - szablon (makro) przekształca podaną w sekundach długość trwania odcinka czasu na tekst opisowy.
==== Wkład użytkownika i linki danej strony ====
* {{s|La}}, {{s|Ln}}{{Patrz|ln}}, {{s|Lt}}, {{s|Lx}} i {{s|Sil}} - szablony tworzące zestaw linków do podanego artykułu znajdującego się w przestrzeni głównej (edytuj, dyskusja, historia, linkujące, obserwuj, rejestr).
* {{s|Lw}} - szablon do tworzenia linków do stron Wikipedysty, wkładu i rejestru operacji.
* {{s|LnDNU}} - szablon ten działa tak samo jak {{LinkPatrz|ln}}, ale dodatkowo dodaje stronę do jednej z podkategorii {{lk|Dyskusje nad usuwaniem lub naprawą}} - zgodnie z początkiem nazwy strony.
* {{s|Userscan}} - szablon prezentujący wkład wikipedysty.
* {{s|Użytkownik}} - szablon prezentuje linki danego podręcznika.
* {{s|User-multi}} - szablon pozwala na automatyczne dodanie rozmaitych linków do nazwy użytkownika, w zależności od wybranych opcji może to być na przykład link do licznika edycji, do rejestru stron usuniętych, strony dyskusji itd. Jest bardziej wszechstronną alternatywą dla {{s|Użytkownik}}.
=== Szablony nowych i wyróżnionych podręczników miesiąca oraz szablony głosowania ===
* {{s|Link FA}} - umieszczamy w linkach w indyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* {{s|NPM}} i {{s|WM}} - kolejno nowych i wyróżnionych podręczników miesiąca.
* {{s|Zwycięzca NPM}} i {{s|Zwycięzca NPM krótki}} - szablony ikony nowych podręczników miesiąca.
* {{s|WM/Info}} i {{s|WM/Info krótkie}} - szablony ikony wyróżnionych książek miesiąca.
* {{s|WM/Zegar}} - zegar głosowania wyróżnionych podręczników miesiąca.
== Szablony do dokumentacji szablonów ==
=== Przykłady tabelkowe pewnego szablonu ===
Przykłady do demonstracji problemów na polskim {{NAZWASERWISU|link=tak}}.
==== Szablony do demonstracji pewnych przykładów ====
* {{s|Lorem ipsum}} - szablon potrzebny do demonstracji różnych aspektów na polskim {{NAZWASERWISU|link=tak|wikipedia=tak|po=ie}}.
==== Szablony przykładów opisujące szablon z różnymi parametrami ====
* {{s|Tabela przykładów użycia szablonów}} - szablon tworzy tabelę z dwoma nagłówkami, tzn.: '''Wywołanie''' i '''Efekt''', a przy parametrze {{Parametr|uwagi|tak}} tworzy trzeci nagłówek: '''Uwagi'''.
* {{s|Przykład użycia szablonu w tabeli}} - szablon tworzy tabelkę zawierającą przykłady wywołań szablonu do wstawienia na stronę opisu szablonu.
* {{s|Tytuł strony z szablonem}} - szablon podaje nazwę strony aktualnie opisywanego szablonu
=== Szablony dokumentacji ===
* {{s|Dokumentacja}} i {{s|Podstrona dokumentacji}} - szablony dokumentacji szablonu (ten pierwszy) i opisu (ten drugi).
** {{s|Dokumentacja/preload}} - strona (szablon) do ładowania przykładowego opisu do stworzenia nowego opisu dokumentacji.
* {{s|Kwestie techniczne}} - szablon do zgłaszania problemów technicznych przez użytkownika.
* {{s|Strukturyzacja Wizualnego Edytora}} - szablon, który definiuje parametry i jakie typy możliwe on obsługuje, do Wizualnego Edytora (VE).
* {{s|Klasyfikacja modułu}} - szablon używany do klasyfikacji {{lpg|Lua|modułów Lua}} według ich wersji rozwojowych.
==== Dokumentacja szablonów szablonów ====
* {{s|Lua}} - szablon powiadamiający, że dany szablon korzysta z modułów {{lpr|Lua}} w {{lpr|Lua|Scribunto}}.
* {{s|Dostępność}} - szablon służący do oznaczania innych szablonów ze względu na problemy z dostępnością (jeśli nie da się ich wyeliminować) + kilka innych.
* {{s|Uniwersalny szablon językowy}} - uniwersalny szablon do tworzenia kolorowych ramek do podręczników do nauki języków obcych.
* {{s|Używa Wikidane}} - szablon informujące w nagłówku dokumentacji, że szablon używa elementów WikiDane.
* {{s|Wysokie ryzyko}} - szablon jest używany informacyjnie i ostrzegawczo w innych szablonach, które ze względu na częste używanie, poziom komplikacji kodu lub znaczenie systemowe powinny być zmieniane z większą niż zwykle rozwagą i starannością.
== Szablony dokumentacji funkcji {{NAZWASERWISU|link=tak}} ==
=== Szablony dokumentacji systemowej {{s|Man}} ===
* {{s|Man}} - szablon wyświetlający internetową pomoc systemu {{lpg|Man}}.
* {{s|PosixMan}} - szablon wyświetlający funkcje systemowe w standardzie {{lpg|POSIX}}.
* {{s|KernelMan}} - szablon wyświetlający pomoc internetową systemową funkcji jądra systemu operacyjnego.
=== Szablony dokumentacji {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
* {{s|LzLua}} - szablon link odnoszących sie do pewnych punków, którym są definicje funkcji na stronie tej dokumentacji.
== Formatowanie ramek ==
* {{s|Pokaż}} i {{s|Tabela nawigacyjna}} - tabela z ukrywanym lub pokazanym fragmentem tekstu.
* {{s|Show}} i {{s|Ramka nawigacyjna}} - ramka oparta o warstwy {{Tag|div}} z ukrywanym lub pokazywanym fragmentem tekstem.
** {{s|Show/W tabelach}} - przykład użycia szablonu {{s|Show}}.
* Menu stworzone o szablon {{s|Tabela nawigacyjna}}:
** {{s|Menu listy pozycji kategorii}} - szablon do tworzenia menu listy pozycji danej kategorii.
** Szablony stworzone o szablon {{s|Menu listy pozycji kategorii}}:
*** {{s|Menu listy kategorii portali}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii: {{lk|Podręczniki według portalu}}.
*** {{s|Menu listy kategorii statusu}} - szablon wyświetlający menu listy kategorii statusu ukończenia poszczególnych podręczników kategorii: {{lk|Podręczniki według statusu}}.
*** {{s|Menu listy kategorii poziomu}} - szablon wyświetlający menu listy kategorii poziomu kształcenia poszczególnych podręczników kategorii: {{lk|Podręczniki według poziomu}}.
*** {{s|Menu listy kategorii tematycznych}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii {{lk|Podręczniki według tematu}}.
*** {{s|Menu listy kategorii Światy dla dzieci}} - szablon wyświetla menu listy kategorii: {{lk|Wikijunior:Światy dla dzieci}}, dzielący książki dla dzieci według tematu, którą one dotyczą.
== Szablony do obliczeń matematycznych ==
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy liczba jest podana z absolutną jednostką długości, jeżeli jest podana, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z jednostką długości {{Code|px}}.
* {{s|Maksimum}} i {{s|Max}} (przekierowanie do tego ostatniego) - szablony do liczenia maksimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|Minimum}} i {{s|Min}} (przekierowanie do tego ostatniego) - szablony do liczenia minimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|W pikselach}} - szablon przelicza długości, w jednostkach bezwzględnych lub liczby, na piksele oznaczone symbolicznie (skrótowo), czyli jako ({{Code|px}}), przestawiając je jako liczby w pikselach bez jednostek.
=== Szablony funkcji matematycznych ===
* {{s|Ogranicz}} - funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą, to jest zwracana wartość parametru "default" (domyślnie 240).
* {{s|Void}} - szablon pusty do skomplikowanych rozwiązań technicznych.
=== Szablony warunkowe ===
* {{s|Jeśli niepuste}} - szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim przedrostkiem lub przedrostkiem i ewentualnie otoczona znacznikami.
* {{s|Pierwszy niepusty}} - szablon wyświetla pierwszy niepusty element z podanych argumentów, ewentualnie względem zmiennej testowej.
* {{s|Jeśli niepuste komunikat}} - szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Jeśli większe}} - szablon sprawdza rozmiary bezwzględne, czy pierwsza wartość jest większa od drugiej, wtedy zwraca niepustą wartość.
== Artykuły bez infoboksu ==
* {{s|Bez infoboksu}} i {{s|Potrzebne infoboksy}} - szablony, ten pierwszy jest wstawiany na strony dyskusji artykułu, gdy na stronie w przestrzeni {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}} nie ma tam ściśle określonego infoboksu, a ten drugi jest wstawiany na strony w przestrzeni {{Np|Category|link=tak}} na odpowiednią stronę, która ma zgłaszać, czy ta kategoria jest pusta, czy nie, w tych dwóch przypadkach rodzic kategorii jest inny.
== Szablony ikon ==
* {{s|Ikona}} - ten szablon tworzy wbudowane ikony, które używane są na {{lpr|Metastrony|metastronach}} polskojęzycznej Wikibooks.
== Ramki pudełkowe ==
* {{s|W skrócie}} - ten szablon powinien prezentować streszczenie {{lr|Zasady|zasad Wikibooks}}.
== Szablony pomocy ==
* {{s|Pomagam}} - szablon przeznaczony jest dla doświadczonych użytkowników, którzy chcą pomóc w rozwiązywaniu problemów początkujących wikipedystów.
* {{s|Pomocy}} - szablon wstawia się, wpisując na swojej stronie poniższy tekst: {{s|Pomocy}} lub {{s|Pomocy|Treść problemu}} .
== Strony testowe szablonów ==
* {{s|Przypadek testowy}} - szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu.
== Blokada Fundacji Wikimedia na wszystkie jego projekty ==
* {{s|Blokada WMF}} - użycie w przypadku blokad nałożonych przez Fundację Wikimedia.
== Strony z magicznymi linkami ==
* {{s|ISBN}} - szablon magicznego linku ''' ISBN ''' wykorzystujący moduł {{m|ISBN}}.
== Szablony operacji na ciągach (łańcuchach) wykorzystujące moduł {{m|String}} ==
* {{s|Długość}} - zwraca długość podanego ciągu.
* {{s|Subciąg}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd dokąd zwracamy subciąg z tego ciągu.
* {{s|Subciąg2}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd zwracamy subciąg w ciągu, i o jakiej długości.
* {{s|Dopasuj}} - znajdź pasujące w wyszukanym ciągu według wyrażenia regularnego.
* {{s|Pobierz}} - pobierz N-ty znak ciągu.
* {{s|Znajdź}} - zwraca pozycję określonego fragmentu w przeszukiwanym ciągu.
* {{s|Zastąp}} - zamienia w tekście w ciągu pewne podciągi (za pomocą wyrażenia regularnego) na inne.
* {{s|Powtórz}} - szablon powtarza ciąg przez podaną ileś razy.
* {{s|Łącz}} - szablon łączy podane ciągi za pomocą łącznika.
== Szablony parsera tag ==
* {{s|FormularzWejścia}} - szablon służy do tworzenia formularzy wejścia.
* {{s|ListaKategorii}} - szablon wyświetlający listę kategorii.
* {{s|MapaObrazu}} - szablon do wyświetlania mapy obrazu, o odpowiedniej wielkości, z linkiem lub linkami, na niej.
== Szablony ujednoznacznień ==
* {{s|Inne znaczenia}} - szablon informujący o różnych znaczeniach danego pojęcia.
* {{s|Nie mylić z}} - szablon wykorzystywany w przypadku książek o bardzo podobnych nazwach, a innych podobnych znaczeniach.
* {{s|Przekierowanie}} - szablon powinien być wstawiany na stronie, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}.
* {{s|Ujednoznacznienie}} - szablon ten umieszcza się na stronach ujednoznaczniających. Efektem umieszczenia szablonu jest wyświetlenie krótkiej informacji
== Strony umieszczane na stronach kategorii ==
* {{s|Kategoria dla kategorii}}, {{s|Kategorie tematyczne}} i {{s|Metakategoria}} - szablony wstawiane na strony kategorii mówiące kolejno, że pierwsza kategoria zawiera tylko kategorie, kategorie tematyczne lub jest tylko metakategorią, czyli grupujące strony według ich statusu technicznego.
* {{s|Opis kategorii}} i {{s|Opis kategorii 2}} - szablony opisu kategorii, mający jeszcze dalsze funkcje ten pierwszy, np. wstawia niektóre szablony według jego definicji, czyli on informuje coś o kategorii, a ten drugi szablon ma podstawowe funkcje.
== Szablony wyświetlające zawartość strony ==
=== Szablony wyświetlające strony ===
* {{s|ArtykułSubst}} - szablon do ładowania artykułów innych niż aktualny artykuł w danej książce. Też jest możliwe przestawienie tego szablonu, by wyświetlał pełną nazwę artykułu lub książki.
=== Strony zbiorcze ===
* {{s|StronaSubst}} - szablon do wyświetlania zestawu wszystkich artykułów książki w formie zestawu za pomocą JavaScript.
* {{S|KsiążkaSubst}} - szablon drukuje pełną zawartość wszystkich artykułów aktualnej książki, gdy nazwa bazowa artykułu jest równa nazwie książki lub gdy jego subnazwa jest "Wersja do druku". Gdy subnazwa artykułu jest równa rozdziałowi na stronie głównej książki, to szablon drukuje wszystkie zawartości wszystkie zawartości artykułu należące do tego rozdziału.
=== Zawartości stron ===
* {{s|LuaSubst}} - szablon służy do wyświetlania zawartości kodów języka {{lpr|Lua}}, {{lpg|JavaScript}}, {{lpg|CSS}} i wikikodu, które są dostępne na stronach tego projektu.
== Szablony wyświetlające kod w językach komputerowych ==
* {{s|ŹródłoKodu}} - szablon służy do wyświetlania składni kodu w ramce, generowane przez inne szablony, np. przez szablon {{s|LuaSubst}}. A poniższe szablony wykorzystują go jako kombajn:
** {{s|ŹródłoXml}} - szablon kolorujący składnię kodu w języku skryptowym XML.
** {{s|ŹródłoHtml}} - szablon kolorujący składnię kodu w języku skryptowym HTML.
** {{s|ŹródłoCss}} - szablon kolorujący składnię kodu w języku kaskadowych arkuszy stylów CSS.
== Szablony zaawansowane linków ==
* {{s|WydobądźLinki}} - szablon wydobywa linki wewnętrzne i zewnętrzne z linków, kategorii i rozwiniętego wikikodu, czy HTML - wykorzystujący moduł {{m|StronicowyParser}}.
* {{s|Odnośnik}} - szablon po użyciu generuje odnośnik do pozycji literaturowej w formie żółtego dymku.
=== Szablony linków do baz danych ===
* {{s|ISSN}} - dla publikacji identyfikowanych za pomocą {{lpg|International Standard Serial Number}} (ISSN) 1234-5678.
* {{s|CAS}} - szablon służy do linkowania {{lpg|numer CAS|numeru CAS}} do {{lz|s=https://tools.wmflabs.org/magnustools/cas.php|c=language=pl&cas=|n=wyszukiwarki po numerze CAS}}, zwłaszcza w parametrach {{Code|numer CAS}} w {{s|Białko infobox}}, {{s|Pierwiastek infobox}} i {{s|Związek chemiczny infobox}}.
* {{s|CELEX}} - szablon służy do automatycznego generowania linków do systemu {{lpg|EUR-Lex}} Przy jego użyciu tworzy się linki do stron zwracających wyniki z wyszukiwania przy użyciu numeru {{lpg|CELEX}}.
* {{s|EUR-Lex}} - szablon służy do automatycznego generowania linków do oficjalnego systemu informacji prawnej Unii Europejskiej {{lpg|EUR-Lex}}. Przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych dyrektywach, rozporządzeniach lub innych ogłoszonych aktach unijnych.
== Specjalistyczne szablony linków ==
* {{s|Top}} - szablon generuje link, który po kliknięciu na niego, jesteśmy przeniesieni na górę strony.
== Szablony publikacyjne ==
==== Akty prawne - {{lpg|Internetowy System Aktów Prawnych}} ====
Szablony służące do automatycznego generowania linków {{lpg|Internetowy System Aktów Prawnych|Internetowego Systemu Aktów Prawnych Sejmu RP}}:
* {{s|Dziennik Ustaw}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych ustawach, rozporządzeniach lub innych aktach normatywnych.
* {{s|Monitor Polski}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych aktach prawnych.
==== Szablony pomocnicze do wyświetlania szablonów typu {{S|Dziennik Ustaw}} i {{S|Monitor Polski}} ====
* {{s|Adres publikacyjny}}, {{s|Internetowy System Aktów Prawnych}} i {{s|Publikator}} - szablony pomocnicze do wyświetlania aktów prawnych w tego typu szablonach.
== Szablony pozwoleń i zgłoszeń ==
=== Szablony pozwoleń ===
* {{s|OTRS}} - szablon informuje, że pozwolenie na wykorzystanie materiałów użytych na stronie zostały udzielone, a zarchiwizowane jest w OTRS pod pewnym numerem.
=== Szablon statusu ===
* {{s|Status zgłoszenia}} - status realizowanych zadań, podzielone na różne wybieralne ścisłe kategorie.
== Szablony specjalistyczne podręcznikowe ==
* {{s|Rozmieniarka}} - szablon do rozmieniania pieniędzy.
{{BrClear}}
<noinclude>{{UnikatowaStronaKoniec}}{{Kategoria|Tekstowe opisy techniczne szablonów}}</noinclude>
kpurs4xhzt94ijyh1zz9riwbvzc3bhl
Szablon:LinkModułUstęp
10
60163
551502
470909
2026-08-11T22:01:23Z
Persino
2851
551502
wikitext
text/x-wiki
<includeonly>{{#invoke:Ramka|Szablon|Nazwa=LinkUstęp|miano przestrzeni nazw={{#if:{{{klucz projektu|}}}{{{kod języka|}}}{{{kod projektu|}}}|Module|Moduł}}|bez argumentów szablonu=wyświetlana;w;4;3;miano przestrzeni nazw;f;2|zmienna z parametrami rodzica=tak}}</includeonly><noinclude>{{Dokumentacja|Szablon:LinkUstęp/opis}}</noinclude>
nk2vitct8jspr9oq15q4t7abeie7wlc
Moduł:StronicowyParser/AnalizaSpisuRzeczy
828
60192
551571
544754
2026-08-12T11:05:09Z
Persino
2851
551571
Scribunto
text/plain
local p={};
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tak=false;
local techniczne_modul=require("Module:Techniczne");
linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia);
for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do
tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$")));
if(tak)then return true;end;
end;
return nil;
end;
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local techniczne_modul=require("Module:Techniczne");
while(true)do
local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,jak);
if(liczba_start_rozdzial)then
rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial);
local czy_zerowy_spis_rzeczy;
for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do
czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor);
if(czy_zerowy_spis_rzeczy)then break;end;
end;
if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
else
liczba_od=liczba_start_rozdzial;
end;
else
return;
end;
end;
return nil;
end;
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(not czy_ce)then return;end;
local zawartosc=tabela_parametrow_szablonu[czy_ce];
if(not zawartosc)then return;end;
return true;
end);
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa)and(zawartosc))then
if(nazwa=="center")then
return true;
end;
end;
end;
end;
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
while(true)do
local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak);
if(liczba_start_rozdzial)then
if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
local szablon,obiekt,kod,poziom_iteracji=iterator();
local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil;
if(not wynik)then
local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if((rozdzial)and(czy_standardowe_rozdzialy))then
return liczba_start_rozdzial,liczba_koniec_rozdzial,linia;
end;
end;
end;
if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end;
else
return;
end;
end;
return nil;
end;
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if(tab)then
if(numer_rodzaju_artykulu==1)then
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false);
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))))
local function StronyWstepu(artykul)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tak=true;
for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do
tak=tak and (not mw.ustring.match(artykul,wzor));
if(not tak)then return tak;end;
end;
return tak;
end;
if((czy_glowny_spis_tresci)and(artykul==""))then
return false,numer_rodzaju_artykulu,czy_podrecznik,false;
else
if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then
return true,numer_rodzaju_artykulu,czy_podrecznik,false;
else
return true,numer_rodzaju_artykulu,czy_podrecznik,true;
end;
end;
else
return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false;
end;
end;
end;
return false,nil;
end;
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
if(obiekt=="SZABLON")then
local szablonowe_modul=require("Module:Szablonowe");
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
if(nazwa_szablonu=="SpisTreści")then
return true,1;
else
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_spisu)then
local parametr_linku;
if(tabela_spisu[1]==true)then
local numer_link=tabela_spisu["numer_link"];
parametr_linku=tabela_parametrow_szablonu[numer_link];
else
local numer_link=tabela_spisu["link"];
parametr_linku=tabela_parametrow_szablonu[numer_link];
end;
if(parametr_linku)then
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
if(czy_element_spisu)then
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
end;
end;
end;
end;
end;
end;
end);
if(czy_element_spisu)then
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
end;
end;
return false;
end;
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci);
if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then
czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci);
end;
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
end;
function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak)
if(not czy_od_tylu)then
if((liczba)and(liczba2)and(liczba>liczba2))then return;end;
local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba);
if((a)and(b)and(a>b))then return;end;
if((not liczba2)or(b<=liczba2))then
return a,b,c,d,e,f,g,h,i,j,k,l;
end;
return nil;
else
if((liczba)and(liczba2)and(liczba<liczba2))then return;end;
local liczba_start=liczba2 or 1;
local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil;
while(true)do
local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start);
if((a1)and(b1)and(a1>b1))then return;end;
if((not b1)or((b1)and(b1>liczba)))then
return a,b,c,d,e,f,g,h,i,j,k,l;
elseif((b1)and(b1==liczba))then
return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1;
end;
a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1;
if(not jak)then
if(a1==b1)then
liczba_start=b1+1;
else
liczba_start=b1;
end;
else
liczba_start=b1+1;
end;
end;
end;
end;
function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu;
local szablonowe_modul=require("Module:Szablonowe");
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON");
while(true)do
local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true);
if(liczba_start_szablon)then
liczba_obiekt_start_od_tylu=liczba_start_szablon;
local obiekt="SZABLON";
local kod=kod_szablon and tonumber(kod_szablon) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
----
local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(nazwa_szablonu=="Licencja")then
return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end;
end);
if(liczba_koniec_szablon)then
return liczba_koniec_szablon,norma_wzoru;
end;
elseif(not liczba_start_szablon)then
return nil;
end;
end;
end;
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści")
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local liczba_start_szablon;local liczba_koniec_szablon;
local liczba_wys_szablon=liczba;
local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON");
local spis_naglowka_szablon;
local spis_naglowka_szablon_stare;
while(true)do
local kod;
liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu);
if(liczba_start_szablon)then
if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end;
local obiekt="SZABLON";
kod=kod and tonumber(kod) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(liczba_szablon_centrowany)then
local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany];
if(naglowek)then
if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then
if(czy_spis_tresci)then
spis_naglowka_szablon_stare=naglowek;
spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",};
if(czy_spis_tresci(spis_naglowka_szablon))then
return false;
end;
else
spis_naglowka_szablon=naglowek;
return false;
end;
end;
end;
end;
return true;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return true;
end);
if(not wynik)then
break;
end;
else
break;
end;
end;
local liczba_start_znacznik;local liczba_koniec_znacznik;
local liczba_wys_znacznik=liczba;
local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK");
local spis_naglowka_znacznik;
local spis_naglowka_znacznik_stare;
while(true)do
local kod;
liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu);
if(liczba_start_znacznik)then
if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end;
local obiekt="ZNACZNIK";
kod=kod and tonumber(kod) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
if(zawartosc)then
if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then
if(czy_spis_tresci)then
spis_naglowka_znacznik_stare=zawartosc;
spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",};
if(czy_spis_tresci(spis_naglowka_znacznik))then
break;
end;
else
spis_naglowka_znacznik=zawartosc;
break;
end;
end;
end;
end;
else
break;
end;
end;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local liczba_start_dodatni;local liczba_koniec_dodatni;
local liczba_wys_dodatni=liczba;
local spis_naglowka_dodatni;
local spis_naglowka_dodatni_stare;
local spis_naglowka_poziom;
while(true)do
local naglowek;
liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu);
if(not liczba_start_dodatni)then break;end;
if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end;
local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek);
if(naglowek)then
if(czy_spis_tresci)then
spis_naglowka_dodatni_stare=naglowek;
spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",};
spis_naglowka_poziom=poziom_naglowka;
if(czy_spis_tresci(spis_naglowka_dodatni))then
break;
end;
else
spis_naglowka_dodatni=naglowek;
spis_naglowka_poziom=poziom_naglowka;
break;
end;
end;
end;
if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then
local _max_min;
if(czy_od_tylu)then
_max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0);
else
_max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu);
end;
if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then
local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon;
if((not czy_spis_tresci)and(spis_naglowka_szablon))then
spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",};
end;
return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil;
elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then
local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik;
if((not czy_spis_tresci)and(spis_naglowka_znacznik))then
spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",};
end;
return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil;
elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then
local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni;
if((not czy_spis_tresci)and(spis_naglowka_dodatni))then
spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",};
end;
return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom;
end;
end;
return nil;
end;
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local linki=function(zawartosc)
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$");
return szablon,obiekt,kod,dalszy_tekst;
elseif(obiekt=="SZABLON")then
local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])
or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])
)then
local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$");
return szablon,obiekt,kod,dalszy_tekst;
end;
local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_szablon_link_intelignetny)then
local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$");
return szablon,obiekt,kod,dalszy_tekst;
end;
end);
return szablon,obiekt,kod,dalszy_tekst;
end;
return nil;
end;
end;
if(obiekt=="SZABLON")then
local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(not czy_ce)then return nil;end;
local zawartosc=tabela_parametrow_szablonu[czy_ce];
if(not zawartosc)then return nil;end;
local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc);
if((szablon)and(obiekt)and(kod))then
return szablon,obiekt,kod,dalszy_tekst;
end;
return nil;
end);
return szablon,obiekt,kod;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc);
if((szablon)and(obiekt)and(kod))then
return szablon,obiekt,kod,dalszy_tekst;
end;
return nil;
end;
end;
return nil;
end;
end;
function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu)
local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil;
local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10;
local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu;
if(not czy_od_tylu)then
if((not liczba_start_tekst)or(liczba_start_tekst==1))then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false);
end;
if(not liczba_start_rozdzial)then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false);
if(not liczba_start_rozdzial)then
if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false);
end;
if(not liczba_start_rozdzial)then
if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false);
end;
end;
end;
end;
else
if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true);
end;
if(not liczba_start_rozdzial)then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true);
if(not liczba_start_rozdzial)then
if((not liczba2)or(liczba2==1))then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true);
end;
if(not liczba_start_rozdzial)then
if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then
liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true);
end;
end;
end;
end;
end;
return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
end;
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local tak=false;
local szablonowe_modul=require("Module:Szablonowe");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
--czy_w_petli=true;
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((czy_element_spisu)and(not czy_okladka))then
return true;
elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then
tak=true;
elseif(czy_okladka)then
tak=true;
end;
end;
return (not tak);
end;
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1);
if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$"))
or(mw.ustring.match(str,"^[%*#:;<>]+.*$")
or(mw.ustring.match(str,"^[%s%p%w]*$")))
)then return nil;end;
local ile_punktowanych=0;
local szablonowe_modul=require("Module:Szablonowe");
local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia)
if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then
ile_punktowanych=ile_punktowanych+1;
else
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then
ile_punktowanych=ile_punktowanych+1;
break;
end;
end;
end;
end);
if(ile_punktowanych>=ile)then
return nil;
end;
str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),"");
if(not mw.ustring.match(str,"^%s*$"))then
if(czy_zeruj)then
tab_zmienne.liczba_nie_okladka_artykul=nil;
tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil;
tab_zmienne.czy_ten_rozdzial=nil;
--tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,}
end;
return true;
end;
end;
return nil;
end;
end;
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)
local odtylu=liczba_obiekt_start_spac_par;
local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka;
local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej;
local czy_fun=false;
local czy_pierwszy=nil;
local liczba_koniec_naglowek_poczt=nil;
while(true)do
local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe;
if(czy_dodatni==1)then
local _;
liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
elseif(czy_dodatni==2)then
local str_lista_naglowek;
liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
poziom_naglowka_nowe=liczba_start_naglowek_nowe and (-#str_lista_naglowek) or nil;
else
liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil;
end;
if(not liczba_start_naglowek_nowe)then
break;
else
poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe;
local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
if(czy_tak_spisowe)then
if(not czy_pierwszy)then
liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe;
czy_pierwszy=true;
end;
if(liczba_start_naglowek)then
if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then
if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then
local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1);
if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$"))
and((czy_dodatni==1)
and(
((poziom_naglowka_nowe)and(not poziom_naglowka))
or(
((poziom_naglowka_nowe)and(poziom_naglowka))
and(poziom_naglowka_nowe>=poziom_naglowka)
)
)
or(
((czy_dodatni==2)and(poziom_naglowka_nowe<=poziom_naglowka))
or((czy_dodatni~=1)and(czy_dodatni~=2))
)
)
)then
liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe;
break;
end;
end;
elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then
liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe;
break;
end;
end;
if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then
local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe);
if(not spis_tresci)then
--local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe);
local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe);
if(czy_wynik)then return false;end;
end;
czy_fun=true;
end;
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe;
end;
end;
odtylu=liczba_start_naglowek_nowe;
end;
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
end
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)
local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe);
----
if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end;
----
local str_spacja_lub_zerowy_naglowek=function(tekst)
local ile_znalezione_linie_wedlug_wzoru=0;
local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia)
if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then
ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1;
end;
return nil;
end);
if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end;
return nil;
end;
if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then
local liczba_szukaj_odtylu_tekst=liczba_start_naglowek;
local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
if(not liczba_start_rozdzial)then
while(true)do
local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil);
if(liczba_start_naglowek_temp)then
local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek);
if(not str_spacja_lub_zerowy_naglowek(str))then
break;
end;
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp;
end;
local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil);
if(liczba_start_naglowek_temp)then
local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek);
if(not str_spacja_lub_zerowy_naglowek(str))then
break;
end;
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp;
end;
if(not liczba_start_naglowek_temp)then break;end;
end;
end;
elseif(not liczba_start_naglowek)then
local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par;
local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
if(liczba_start_naglowek_temp)then
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści")
local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then
----
local tak=false;
local czy_w_petli=false;
local szablonowe_modul=require("Module:Szablonowe");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
czy_w_petli=true;
if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((czy_element_spisu)and(not czy_okladka))then
if(numer_rodzaju_artykulu==1)then
tak=true;
break;
end;
end;
end;
end;
if((tak)or(not czy_w_petli))then
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0;
end;
end;
else
local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil);
if(liczba_start_naglowek_temp)then
if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then
local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1);
if(mw.ustring.match(str,"^%s*$"))then
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp;
liczba_obiekt_start_kolei_par=liczba_start_naglowek;
end;
else
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp;
liczba_obiekt_start_kolei_par=liczba_start_naglowek;
end;
end;
local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil);
if(liczba_start_naglowek_temp)then
if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then
local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1);
if(mw.ustring.match(str,"^%s*$"))then
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp;
end;
else
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp;
end;
end;
end;
end;
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
end;
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)
local liczba_spac=0;
if(liczba_start)then
local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia;
while(true)do
local liczba_start_tekst_stare=liczba_start_tekst;
linia=nil
local liczba_szukaj_odtylu_tekst=liczba_start_tekst;
liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
local czy_poczt;
if(not liczba_start_tekst)then
liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
czy_poczt=true;
else
czy_poczt=false;
end;
local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil;
if(rozdzial_dodatki)then
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki);
if(naglowek)then
return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac;
end;
end;
local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil;
if(spacja)then
liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2);
elseif((not spacja)and(linia))then
local czy_spis=nil;
local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true);
local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil;
if(not spis_tresci)then
liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst);
czy_spis=liczba_start_rozdzial and true or nil;
else
liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]];
czy_spis=true;
end;
if(not liczba_start_rozdzial)then
if(not spis_tresci)then
local szablonowe_modul=require("Module:Szablonowe");
if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
local tak=false;
local czy_okladka=nil;
local szablonowe_modul=require("Module:Szablonowe");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((czy_element_spisu)and(not czy_okladka))then
tak=true;
break;
end;
end;
end;
liczba_start=tak and liczba_start_tekst or liczba_start;
else
liczba_start=liczba_koniec_tekst;
end;
else
liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]];
end;
end;
return liczba_start,liczba_spac,czy_spis;
elseif(not liczba_start_tekst)then
return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil;
end;
end;
end;
return liczba_start,liczba_spac,nil;
end;
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
---
if((liczba_linki_nierozdzialowe_szablonu)
and(
(przed_tekst=="")
or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$"))
)
)then
liczba_spisu=liczba_linki_nierozdzialowe_szablonu;
if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then
local obiekt=obiekt_szablon;
local kod=kod_szablon;
kod=tonumber(kod) or nil;
----
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
----
----
if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then
return liczba_linki_nierozdzialowe_szablonu,true;
else
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul);
local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon;
for szablon,obiekt,kod in iterator do
local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod));
if(czy_znajdz)then
local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod));
if(czy_tekst)then
if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then
return liczba_linki_nierozdzialowe_szablonu,true;
end;
end;
else
return liczba_spisowa,false;
end;
szablon_obiekt_temp,szablon_kod_temp=obiekt,kod;
end;
end;
return liczba_spisowa,false;
end;
end;
else
return liczba_spisowa,false;
end;
end;
end;
function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local tak=nil;
local techniczne_modul=require("Module:Techniczne");
local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek)
naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek);
if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then
return true;
end;
end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not liczba_rozdzial_start)then
liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(liczba_rozdzial_start)then tak=true;end;
end;
if(liczba_rozdzial_start)then
local liczba_rozdzial_start2,liczba_rozdzial_koniec2;
if(not tak)then
liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
else
local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then
if(liczba_rozdzial_start3<liczba_rozdzial_start4)then
liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3;
else
liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4;
end;
elseif(liczba_rozdzial_start3)then
liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3;
elseif(liczba_rozdzial_start4)then
liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4;
else
liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil;
end;
end;
-----
local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst));
if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end;
local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec);
local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or "";
-----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia)
local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$");
if((obiekt)and(kod)and(dalszy_tekst))then
kod=tonumber(kod) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then
return linia;
end;
end;
linia=dalszy_tekst or linia;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if(czy_element_spisu)then
return linia;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then
return linia;
else
return "";
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return "";
end);
return wynik;
end;
end;
end;
return "";
end);
tekst=tekst1..str_bibliografia..tekst2;
end;
return tekst;
end;
function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony();
if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end;
----
local liczba_start=nil;local liczba_koniec=nil;
----
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
-----
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu();
----
local liczba_obiekt_koniec=1;
local liczba_pierwszy_rozdzialowy_artykul=nil;
local liczba_nie_okladka_artykul=nil;
local tab_nazwa_spisow_przekierowaniowych={};
local liczba_start_rozdzial=1;
local liczba_obiekt_start_poprz=nil;
local liczba_obiekt_koniec_poprz=nil;
local liczba_nie_okladka_artykul_koniec=nil;
local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*";
while(true)do
local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false);
if(liczba_start_szablon)then
liczba_obiekt_koniec=liczba_koniec_szablon;
--local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$"))));
local czy_rozdzial_dodatni;
local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"));
local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>")))));
czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$"))));
local szablon;
if(not czy_listy)then
local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil;
szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(szablon)then czy_listy=true;end;
end;
if(czy_listy)then
local liczba_obiekt_start=liczba_start_szablon;
local obiekt=obiekt_szablon;
local kod=kod_szablon;
kod=tonumber(kod) or nil;
local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((not czy_element_spisu)or(czy_okladka))then
local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu)
local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp;
local tak=false;
for obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then
kod=tonumber(kod) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true);
if((czy_element_spisu_temp)and(not czy_okladka_temp))then
if(numer_rodzaju_artykulu_temp==1)then
tak=true;
break;
end;
end;
end;
end;
if(tak)then
czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp;
end;
end;
liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul;
liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul;
liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec;
----
if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then
local czy_bez_naglowka=nil;
local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start;
local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec;
local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil;
local czy_ten_rozdzial=true;
local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe;
local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek)
if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end;
end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
local czy_zeruj=(not liczba_spis_tresci_start)and true or false;
liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe;
local tab_zmienne={
liczba_nie_okladka_artykul=liczba_nie_okladka_artykul,
liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul,
czy_ten_rozdzial=czy_ten_rozdzial,
};
liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych));
liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial;
if(not czy_ten_rozdzial)then
if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then
liczba_start_rozdzial=liczba_obiekt_start_nowe_temp;
liczba_obiekt_start_nowe=liczba_obiekt_start;
czy_ten_rozdzial=true;
tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial;
liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych));
liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial;
end;
end;
---- jest to pozycja nagłówka, która mówi, który nagłówek ma być pierwszy, czy ten od spisu treści, czy ten dalszy;
liczba_start_naglowek=(
(not liczba_spis_tresci_start)
or((liczba_spis_tresci_start)and(not poziom_naglowka_start)) -- nagłówek spisu tresci centrowany;
-- nagłówki oba dodatnie niecentrowane, oba ujemne lub ten pierwszy dodatni, a drugi ujemny, a pierwszy dodatni;
or((poziom_naglowka_start)and(poziom_naglowka))and(
((poziom_naglowka_start>0)and(poziom_naglowka<=0))
or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka))
or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka))
)
) and liczba_spis_tresci_start
or liczba_start_naglowek;
----
if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then
----
czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false;
----
if(liczba_start_naglowek)then
local liczba_przed_rozdzialem;local czy_znajdz;
liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek);
local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek;
local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(liczba_start_naglowek_przed)then
if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then
liczba_start=liczba_przed_rozdzialem;
local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul);
if(czy_spis)then
liczba_start=liczba_start_sugerowane;
break;
elseif(not czy_znajdz)then
liczba_start=liczba_przed_rozdzialem;
break;
end;
if(liczba_start_sugerowane<liczba_start-liczba_spac)then
if(liczba_start_sugerowane>liczba_start_naglowek_przed)then
liczba_start=liczba_start_sugerowane;
local liczba_start_od_tylu=liczba_start;
local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true);
if(liczba_start_nowa)then
if(liczba_start_nowa>liczba_start_naglowek_przed)then
liczba_start=liczba_start_nowa;
end;
end;
end;
end;
else
liczba_start=liczba_spis_tresci;
local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul);
if(czy_spis)then
liczba_start=liczba_start_sugerowane;
break;
elseif(not czy_znajdz)then
liczba_start=liczba_przed_rozdzialem;
break;
end;
if(liczba_start_sugerowane<liczba_start-liczba_spac)then
if(liczba_start_sugerowane>liczba_start_naglowek_przed)then
liczba_start=liczba_start_sugerowane;
local liczba_start_od_tylu=liczba_start;
local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true);
if(liczba_start_nowa)then
if(liczba_start_nowa>liczba_start_naglowek_przed)then
liczba_start=liczba_start_nowa;
end;
end;
end;
end;
end;
else
liczba_start=liczba_przed_rozdzialem;
local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul);
if(czy_spis)then
liczba_start=liczba_start_sugerowane;
break;
elseif(not czy_znajdz)then
liczba_start=liczba_przed_rozdzialem;
break;
end;
if(liczba_start_sugerowane<liczba_start-liczba_spac)then
local liczba_start_od_tylu=liczba_start_sugerowane;
local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true);
liczba_start=liczba_start_nowa or liczba_start_sugerowane;
else
liczba_start=liczba_start_sugerowane;
end;
end;
else
local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe)
if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then
local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1);
str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),"");
if(not mw.ustring.match(str,"^%s*$"))then
return true;
end;
end;
return nil;
end);
if(liczba_start_naglowek)then
liczba_obiekt_start_nowe=liczba_start_naglowek;
end;
--[[]]
local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe);
liczba_start=liczba_przed_rozdzialem;
local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul);
if(czy_spis)then
liczba_start=liczba_start_sugerowane;
break;
elseif(not czy_znajdz)then
liczba_start=liczba_przed_rozdzialem;
break;
end;
if(liczba_start_sugerowane<liczba_start-liczba_spac)then
local liczba_start_od_tylu=liczba_start_sugerowane;
local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
liczba_start=liczba_start_nowa or liczba_start_sugerowane;
end;
end;
break;
else
liczba_start_rozdzial=liczba_obiekt_koniec_nowe;
liczba_nie_okladka_artykul_koniec=nil;
end;
liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz;
else
liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz;
end;
end;
else
break;
end;
end;
if(not liczba_start)then return "";end;
local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu;
while(true)do
local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true);
----
if(liczba_start_szablon)then
liczba_obiekt_start_od_tylu=liczba_start_szablon;
local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"));
local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon=="")));
local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$"))));
local szablon;
if(not czy_listy)then
local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil;
szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(szablon)then czy_listy=true;end;
end;
if(czy_listy)then
local liczba_obiekt_koniec=liczba_koniec_szablon;
local liczba_obiekt_start=liczba_start_szablon;
local obiekt=obiekt_szablon;
local kod=kod_szablon;
kod=tonumber(kod) or nil;
local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil;
if(liczba_start<=liczba_obiekt_start)then
czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true);
if(not czy_element_spisu)then
local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu)
for obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then
kod=tonumber(kod) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
--if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then
czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true);
---elseif((lista_szablon=="")and(przerwa_szablon==""))then
---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true);
---end;
if(czy_element_spisu)then break;end;
end;
end;
end;
end;
if(czy_element_spisu)then
local function IleKoniec()
while(true)do
local poczatek_nierozdzalowe=liczba_obiekt_koniec;
local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false)
if(liczba_start_nieszablon_nielink_nierozdzialowa)then
local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$");
if(rozdzial_dodatki)then
local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki);
if(naglowek)then
liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa;
return;
end;
end;
local czy_spacje=mw.ustring.match(linia,"^%s*$");
if(not czy_spacje)then
liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa;
return;
elseif(czy_spacje)then
liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa;
--else
-- liczba_koniec=#tekst_rozwiniety_calego_artykulu;
-- return;
end;
else
liczba_koniec=#tekst_rozwiniety_calego_artykulu;
break;
end;
end;
end;
IleKoniec();
break;
end;
end;
else
break;
end;
end;
if(liczba_koniec)then
local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu;
while(true)do
local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then
koniec_dodatnie_rozdzialy=liczba_rozdzial_start;
local start=1;
while(true)do
local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start);
local koniec_obiekt;local kod_obiekt;local obiekt=nil;
if(start_szablon)then
if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then
--koniec_obiekt=koniec_szablon;
local kod=kod_szablon;
local obiekt=obiekt_szablon;
local kod=tonumber(kod) or nil;
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true);
if(czy_element)then
liczba_koniec=liczba_rozdzial_koniec;
break;
end;
end;
start=koniec_szablon;
else
break;
end;
end;
else
break;
end;
end;
end;
if(not liczba_koniec)then return "";end;
if(liczba_start>=liczba_koniec)then return "";end;
--- Licencja ----
local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then
liczba_koniec=licencja_koniec;
end;
-----
local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec);
-----
for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do
tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
end;
--mw.log(tekst)
--- Licencja ----
--mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa)
--mw.log("TYTAN1",tekst,"TYTAN2")
--return nil;
--local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec);
return tekst;
end;
return p;
pfa2d0qz08tnonem4zl16i3yfngj0m2
Wikibooks:Szablony/Podręcznikowe
4
60365
551551
539863
2026-08-12T04:50:11Z
Persino
2851
/* Szablony internetowej pomocy systemowej {{lpg|Man}} */
551551
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Szablony tematyczne ogólne do wykorzystania w podręcznikach ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|SzachyDiagram|d{{=}}
| prawo
| '''W. Langstaff''', ''Chess Amateur'' 1922
|{{=}}
8 | | | | |kd| | |rd|w8{{=}}
7 | | | | | | | | |w7{{=}}
6 | | | | | |bl| |pl|w6{{=}}
5 | | | |rl| |kl|pd|pl|w5{{=}}
4 | | | | | | | | |w4{{=}}
3 | | | | | | | | |w3{{=}}
2 | | | | | | | | |w2{{=}}
1 | | | | | | | | |w1{{=}}
a b c d e f g h
| '''Dopasuj na dwoje.''' <br /> Ten problem wykorzystuje metodę ''częściowej analizy wstecznej''.
}}
}}
| _1 = {{SzachyDiagram|d=
| prawo
| '''W. Langstaff''', ''Chess Amateur'' 1922
|=
8 | | | | |kd| | |rd|w8=
7 | | | | | | | | |w7=
6 | | | | | |bl| |pl|w6=
5 | | | |rl| |kl|pd|pl|w5=
4 | | | | | | | | |w4=
3 | | | | | | | | |w3=
2 | | | | | | | | |w2=
1 | | | | | | | | |w1=
a b c d e f g h
| '''Dopasuj na dwoje.''' <br /> Ten problem wykorzystuje metodę ''częściowej analizy wstecznej''.
}}
| 2 = {{Pre|
{{s|SzachyDiagramMały|d{{=}}
| prawo
|
|{{=}}
8 |rd| | |qd| |rd|kd| |w8{{=}}
7 |pd|pd| | |pd|pd|bd|pd|w7{{=}}
6 | |nd|pd| | |nd|pd| |w6{{=}}
5 | | |ql| | | |bl| |w5{{=}}
4 | | | |pl|pl| |bd| |w4{{=}}
3 | | |nl| | |nl| | |w3{{=}}
2 |pl|pl| | | |pl|pl|pl|w2{{=}}
1 | | | |rl|kl|bl| |rl|w1{{=}}
a b c d e f g h
| Pozycja po 11. Gg5.
}}
}}
| _2 = {{SzachyDiagramMały|d=
| prawo
|
|=
8 |rd| | |qd| |rd|kd| |w8=
7 |pd|pd| | |pd|pd|bd|pd|w7=
6 | |nd|pd| | |nd|pd| |w6=
5 | | |ql| | | |bl| |w5=
4 | | | |pl|pl| |bd| |w4=
3 | | |nl| | |nl| | |w3=
2 |pl|pl| | | |pl|pl|pl|w2=
1 | | | |rl|kl|bl| |rl|w1=
a b c d e f g h
| Pozycja po 11. Gg5.
}}
}}
== Ramki podręcznikowe informujące ==
Przedstawia wszystkie pudełka informacyjne, do których wstawia się tekst ich zawartości.
=== Szablony bibliografii ===
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|BibliografiaOpracowania|Tekst bibliografii opracowań}}}} | _1 = {{BibliografiaOpracowania|Tekst bibliografii opracowań}}
| 2 = {{Tt|{{s|BibliografiaŹródła|Tekst bibliografii źródeł}}}} | _2 = {{BibliografiaŹródła|Tekst bibliografii źródeł}}
}}
=== Szablony do zastosowań mniej ogólnych ===
{{EfektKodów
| 1 = {{Tt|{{s|System|starszego od Ubuntu 10.04|w późniejszych}}}} | _1 = {{System|starszego od Ubuntu 10.04|w późniejszych}}
| 2 = {{Tt|{{s|Wymaga znajomości|Struktury danych}}}} | _2 = {{Wymaga znajomości|Struktury danych}}
}}
=== Szablony do zastosowań szczególnych (tematyczne) ===
Przedstawia szablony do różnych dziedzin nauki do różnych jego aspektów.
==== Szablony matematyczne ====
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Mat:Ciek|Jeśli liczba jest <nowiki>'''</nowiki>większa od 0<nowiki>'''</nowiki>, to nie jest <nowiki>'''</nowiki>liczbą ujemną<nowiki>'''</nowiki>.}}}}
| _1 = {{Mat:Ciek|Jeśli liczba jest '''większa od 0''', to nie jest '''liczbą ujemną'''.}}
| 2 = {{Tt|{{s|Mat:Def|<nowiki>'''</nowiki>Liczbę dodatnią<nowiki>'''</nowiki> nazywamy taką liczbę, która jest większa od 0.}}}}
| _2 = {{Mat:Def|'''Liczbę dodatnią''' nazywamy taką liczbę, która jest większa od 0.}}
| 3 = {{Tt|{{s|Mat:Tw|Jeśli liczba jest <nowiki>'''</nowiki>większa od 0<nowiki>'''</nowiki>, to jest <nowiki>'''</nowiki>liczbą dodatnią<nowiki>'''</nowiki>.}}}}
| _3 = {{Mat:Tw|Jeśli liczba jest '''większa od 0''', to jest '''liczbą dodatnią'''.}}
| 4 = {{Tt|{{s|Mat:Prz|Jeśli liczba jest <nowiki>'''</nowiki>większa od 0<nowiki>'''</nowiki>, to jest <nowiki>'''</nowiki>liczbą dodatnią<nowiki>'''</nowiki>.}}}}
|_4 = {{Mat:Prz|Jeśli liczba jest '''większa od 0''', to jest '''liczbą dodatnią'''.}}
| 5 = {{Tt|{{s|Mat:Uwg|Jeśli liczba jest <nowiki>'''</nowiki>większa od 0<nowiki>'''</nowiki>, to jest <nowiki>'''</nowiki>liczbą dodatnią<nowiki>'''</nowiki>.}}}}
|_5 = {{Mat:Uwg|Jeśli liczba jest '''większa od 0''', to jest '''liczbą dodatnią'''.}}
}}
==== Szablony matematyczno-fizyczne ====
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|DefinicjaHasło|hasło{{=}}Prędkość|tekst{{=}}Prędkość ciała jest wielkością fizyczną, która charakteryzuje ruch ciała w danej chwili, czyli jest to stosunek przemieszczenia do czasu w którym zachodzi to przemieszczenie.<nowiki><br><center><MATH>\vec v = \frac {\Delta \vec r}{\Delta t}</MATH>
<MATH> \left[ \vec v\right] = \frac {m}{s} </MATH><br></center></nowiki>}}}}
| _1 = {{DefinicjaHasło|hasło=Prędkość|tekst=Prędkość ciała jest wielkością fizyczną, która charakteryzuje ruch ciała w danej chwili, czyli jest to stosunek przemieszczenia do czasu w którym zachodzi to przemieszczenie.<br><center><MATH>\vec v = \frac {\Delta \vec r}{\Delta t}</MATH>
<MATH> \left[ \vec v\right] = \frac {m}{s} </MATH><br></center>}}
| 2 = {{Tt|{{s|PrawoHasło|hasło{{=}}Prawo Ohma|tekst{{=}}Natężenie prądu elektrycznego płynącego przez przewodnik jest wprost proporcjonalne do napięcia przyłożonego do końców tego przewodnika, a odwrotnie proporcjonalnie do oporu tego przewodnika.<nowiki><center><MATH>I = \frac {U}{R}</MATH><br></center></nowiki>}}}}
| _2 = {{PrawoHasło|hasło=Prawo Ohma|tekst=Natężenie prądu elektrycznego płynącego przez przewodnik jest wprost proporcjonalne do napięcia przyłożonego do końców tego przewodnika, a odwrotnie proporcjonalnie do oporu tego przewodnika.<center><MATH>I = \frac {U}{R}</MATH><br></center>}}
| 3 = {{Tt|{{s|PrzykładTemat|temat{{=}}Źródło światła|treść{{=}}Najprostszym źródłem światła, używanym na codzień, jest żarówka z żarnikiem wolframowym.}}}}
| _3 = {{PrzykładTemat|temat=Źródło światła|treść=Najprostszym źródłem światła, używanym na codzień, jest żarówka z żarnikiem wolframowym.}}
| 4 = {{Tt|{{s|MateriałTemat|matematyka{{=}}pojęcie wektora<nowiki><br></nowiki>rachunek wektorowy<nowiki><br></nowiki>|fizyka{{=}}definicja prędkości}}}}
| _4 = {{MateriałTemat|matematyka=pojęcie wektora<br>rachunek wektorowy<br>|fizyka=definicja prędkości}}
| 5 = {{Tt|{{s|ZadanieTemat|temat{{=}}Ruch prostoliniowy|treść{{=}}Punkt materialny porusza się ruchem jednostajnym prostoliniowym z prędkością <nowiki><MATH>5{{m}\over{s}}</MATH></nowiki>.|pytanie{{=}}Jaką drogę ciało przebyło w czasie 2s.|rozwiązanie{{=}}<nowiki><MATH>s=vt=5{{m}\over{s}}\cdot 2s=10m</MATH></nowiki>.|odpowiedź{{=}}Ciało przebyło drogę <nowiki><MATH>10m</MATH></nowiki>.}}}}
| _5 = {{ZadanieTemat|temat=Ruch prostoliniowy|treść=Punkt materialny porusza się ruchem jednostajnym prostoliniowym z prędkością <MATH>5{{m}\over{s}}</MATH>.|pytanie=Jaką drogę ciało przebyło w czasie 2s.|rozwiązanie=<MATH>s=vt=5{{m}\over{s}}\cdot 2s=10m</MATH>.|odpowiedź=Ciało przebyło drogę <MATH>10m</MATH>.}}
}}
==== Szablony ekonomiczne ====
{{EfektKodów|kod-rozmiar=35%
| 1= {{Pre start}}
{{s|Tabela|klasa{{=}}konta|liczba wierszy{{=}}1|liczba kolumn{{=}}3
|komórka 1_1{{=}}{{s|Konto otwórz|070|Umorzenie środków trwałych}}
{{s|Konto zapis|Ma|1|3256,00}}
{{s|Konto zapis|Ma|2|3250,00|Wn|3|3260,0}}
{{s|Konto zamknij}}
|komórka 1_2{{=}}{{s|Konto otwórz|400|Amortyzacja}}
{{s|Konto zapis|Wn|1|4250,00|Ma|2|3250,00}}
{{s|Konto zapis|Wn|3|2200,00|Ma|4|3750,00}}
{{s|Konto zamknij}}
|komórka 1_3{{=}}{{s|Konto otwórz|075|Umorzenie wartości niematerialnych i prawnych}}
{{s|Konto zapis|Ma|1|2200,00|Wn|2|4590,0}}
{{s|Konto zapis|Ma|3|2200,00}}
{{s|Konto zapis|Wn|4|5590,0}}
{{s|Konto zamknij}}
}}
{{Pre koniec}}
| _1=
{{Tabela|klasa=konta|liczba wierszy=1|liczba kolumn=3
|komórka 1_1={{Konto otwórz|070|Umorzenie środków trwałych}}
{{Konto zapis|Ma|1|3256,00}}
{{Konto zapis|Ma|2|3250,00|Wn|3|3260,0}}
{{Konto zamknij}}
|komórka 1_2={{Konto otwórz|400|Amortyzacja}}
{{Konto zapis|Wn|1|4250,00|Ma|2|3250,00}}
{{Konto zapis|Wn|3|2200,00|Ma|4|3750,00}}
{{Konto zamknij}}
|komórka 1_3={{Konto otwórz|075|Umorzenie wartości niematerialnych i prawnych}}
{{Konto zapis|Ma|1|2200,00|Wn|2|4590,0}}
{{Konto zapis|Ma|3|2200,00}}
{{Konto zapis|Wn|4|5590,0}}
{{Konto zamknij}}
}}
}}
==== Szablony chemiczne ====
{{EfektKodów|kod-rozmiar=35%
| 1= {{Pre|{{s|Chem:ciek|Tytuł{{=}}Kwas dymiący.|Treść ciekawostki{{=}}Kwas dymiący.
Dym, unoszący się z naczynia ze stężonym kwasem solnym, to drobne kropelki tego kwasu. Chlorowodór, który wydostaje się z naczynia, łączy się z parą wodną z powietrza, tworząc kwas. Przy niższych stężeniach (poniżej 30%) dym nie tworzy się.}}}}
| _1= {{Chem:ciek|Tytuł=Kwas dymiący.|Treść ciekawostki=Kwas dymiący.
Dym, unoszący się z naczynia ze stężonym kwasem solnym, to drobne kropelki tego kwasu. Chlorowodór, który wydostaje się z naczynia, łączy się z parą wodną z powietrza, tworząc kwas. Przy niższych stężeniach (poniżej 30%) dym nie tworzy się.}}
| 2 = {{Pre|{{s|Chem:dośw|Nazwa doświadczenia{{=}}Otrzymywanie kwasu solnego.|Do próbówki z chlorowodorem nalać wody z oranżem metylowym. Zatkać próbówkę korkiem i wstrząsnąć.|Woda z oranżem metylowym zabarwiła się na czerwono.|Chlorowodór rozpuszcza się w wodzie, tworząc kwas chlorowodorowy (solny).}}}}
| _2 = {{Chem:dośw|Nazwa doświadczenia=Otrzymywanie kwasu solnego.|Do próbówki z chlorowodorem nalać wody z oranżem metylowym. Zatkać próbówkę korkiem i wstrząsnąć.|Woda z oranżem metylowym zabarwiła się na czerwono.|Chlorowodór rozpuszcza się w wodzie, tworząc kwas chlorowodorowy (solny).}}
}}
== Testy według pewnych możliwości wyboru według różnych schematów ==
{{EfektKodów
| 1 = {{Pre|{{s|Test ABCD|
|Zadanie{{=}}Zadanie 1. Tlenek azotu (I)
|A{{=}}jest bezbarwnym gazem|B{{=}}ma wzór sumaryczny {{s|Chem2|NO}}|C{{=}}reaguje z wodą|D{{=}}jest mało reaktywny
|odpowiedź{{=}}a) jest bezbarwnym gazem{{s|Br}}d) jest mało reaktywny|uwagi{{=}}}}
}}
| _1 = {{Test ABCD|
|Zadanie=Zadanie 1. Tlenek azotu (I)
|A=jest bezbarwnym gazem|B=ma wzór sumaryczny {{Chem2|NO}}|C=reaguje z wodą|D=jest mało reaktywny
|odpowiedź=a) jest bezbarwnym gazem<br>d) jest mało reaktywny|uwagi=}}
| 2 = {{Pre|{{s|Quiz-odpowiedź|
* gleby
* zbiorniki wody słodkiej
* morza i oceany
* w ciałach innych organizmów
* w środowiskach ekstremalnych}}}}
| _2 = {{Quiz-odpowiedź|
* gleby
* zbiorniki wody słodkiej
* morza i oceany
* w ciałach innych organizmów
* w środowiskach ekstremalnych}}
| 3 = {{Pre|{{s|Test PF|
|Zadanie{{=}}Zadanie 1. :
|odpowiedź{{=}}F
|uwagi{{=}}}}
}}
| _3 = {{Test PF|
|Zadanie=Zadanie 1. :
|odpowiedź=F
|uwagi=}}
| 4 = {{Pre|{{s|Test TN|
|Zadanie{{=}}Zadanie 4. Czy kambium umożliwia wzrost łodygi oraz korzenia na
grubość?
|odpowiedź{{=}}T
|uwagi{{=}}}}
}}
| _4 = {{Test TN|
|Zadanie=Zadanie 4. Czy kambium umożliwia wzrost łodygi oraz korzenia na
grubość?
|odpowiedź=T
|uwagi=}}
}}
=== Szablony zadań ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|styl=min-width:800px|
{{s|Klucz odpowiedzi CKE
| cele {{=}} {{s|T|PP2017/LO/Biologia/PR/C/III/2}}
| treści {{=}} {{s|T|PP2017/LO/Biologia/PR/T/XII/1/4}}
| zasady {{=}}
{{s|f|wys{{=}}38px|1 p. – za prawidłowe podanie ostatniego etapu cyklu litycznego}}
{{s|f|wys{{=}}38px|0 p. – za nieprawidłowe podanie ostatniego etapu cyklu litycznego albo za brak odpowiedzi}}
| rozwiązania {{=}} '''A.''' wyciek cytoplazmy do środowiska
| uwagi {{=}}
}}
}}
| _1 = {{Div|styl=min-width:800px|{{OpakujKategorieZeSortowaniem|{{Klucz odpowiedzi CKE
|cele = {{T|PP2017/LO/Biologia/PR/C/III/2}}
|treści = {{T|PP2017/LO/Biologia/PR/T/XII/1/4}}
|zasady =
{{f|wys=38px|1 p. – za prawidłowe podanie ostatniego etapu cyklu litycznego}}
{{f|wys=38px|0 p. – za nieprawidłowe podanie ostatniego etapu cyklu litycznego albo za brak odpowiedzi}}
|rozwiązania = '''A.''' wyciek cytoplazmy do środowiska
|uwagi =
}}}}}}
| 2 = {{Tt|{{s|Nowe zadanie maturalne}}}} | _2 = {{Nowe zadanie maturalne}}
}}
== Niezgodność ze współczesną wiedzą naukową ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Nmed|sekcja{{=}}tak}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{Nmed|sekcja=tak|nazwa przestrzeni nazw=(main)|typ jednostki=artykuł}}}}
}}
== Szablony podręcznikowe tymczasowo wstawiony stronę artykułu książki ==
{{EfektKodów
| 1 = {{Tt|{{s|Aktualne|link{{=}}Portal:Katastrofa polskiego samolotu prezydenckiego pod Smoleńskiem}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{Aktualne|link=Portal:Katastrofa polskiego samolotu prezydenckiego pod Smoleńskiem|typ jednostki=artykuł}}}}
}}
== Szablony specjalistyczne podręcznikowe ==
{{EfektKodów
| 1 = {{Tt|{{s|Rozmieniarka|kwota{{=}}1000|500zł{{=}}1|200zł{{=}}2|5zł{{=}}50}}}}
| _1 = {{Rozmieniarka|kwota=1000|500zł=1|200zł=2|5zł=50}}
}}
== Szablony elementów pływających ==
{{EfektKodów
| 1 = {{Pre|styl=min-width:800px|{{s|Naukowiec
| Imię_nazwisko {{=}} Linus Carl Pauling
| Grafika {{=}} {{s|Plik|plik{{=}}Pauling.jpg|pozycja{{=}}centruj|rozmiar{{=}}80px}}
| data_miejsce_ur {{=}} 28 lutego 1901 w Portland w stanie Oregon
| data_miejsce_śm {{=}} 19 sierpnia 1994 w Big Sur w stanie Kalifornia
| info {{=}} Po ukończeniu studiów na Oregon State University otrzymał doktorat w California Institute of Technology w 1925. W latach 1925 - 1967 profesor chemii na tym uniwersytecie. Dokonał odkryć w dziedzinie wiązań chemicznych, biologii molekularnej i medycyny.
| nobel_data {{=}} 1954 - chemia, za prace nad wiązaniami chemicznymi i ich zastosowanie w wyjaśnieniu budowy związków kompleksowych<br>1962 - nagroda pokojowa, za kampanię przeciw próbom z bronią jądrową
| nobel {{=}} tak
}}
{{s|Lorem ipsum|6}}
}}
| _1 = {{Div|styl=min-width:800px|{{Naukowiec
| Imię_nazwisko=Linus Carl Pauling
| Grafika = {{Plik|plik=Pauling.jpg|pozycja=centruj|rozmiar=80px}}
| data_miejsce_ur = 28 lutego 1901 w Portland w stanie Oregon
| data_miejsce_śm = 19 sierpnia 1994 w Big Sur w stanie Kalifornia
| info = Po ukończeniu studiów na Oregon State University otrzymał doktorat w California Institute of Technology w 1925. W latach 1925 - 1967 profesor chemii na tym uniwersytecie. Dokonał odkryć w dziedzinie wiązań chemicznych, biologii molekularnej i medycyny.
| nobel_data = 1954 - chemia, za prace nad wiązaniami chemicznymi i ich zastosowanie w wyjaśnieniu budowy związków kompleksowych<br>1962 - nagroda pokojowa, za kampanię przeciw próbom z bronią jądrową
| nobel = tak
}}
{{Lorem ipsum|6}}
{{BrClear}}
}}}}
== Szablony arkuszy kalkulacyjne ==
{{EfektKodów
| 1 = {{Tt|{{s|Oblicz-przykład| formuła | wynik | w innej mierze }}}}
| _1 = {{Oblicz-przykład| formuła | wynik | w innej mierze }}
| 2 = {{Tt|{{s|Oblicz-arkusz|A1{{=}}1|A2{{=}}2|A3{{=}}3|C2{{=}} {{=}}SUMA(A1:A3)|D2{{=}}6}}}}
| _2 = {{Oblicz-arkusz|A1=1|A2=2|A3=3|C2= =SUMA(A1:A3)|D2=6}}
}}
== Szablony dokumentacji ==
Tutaj są opisane różne sposoby dokumentacji funkcji.
=== Szablony internetowej pomocy systemowej {{lpg|Man}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Man|1|man|FreeBSD}}}}
| _1 = {{Man|1|man|FreeBSD}}
| 2 = {{Tt|{{s|PosixMan|pthread_create|int pthread_create(pthread_t *id, const pthread_attr_t *attr, void* (*fun)(void*), void* arg)}}}}
| _2 = {{PosixMan|pthread_create|int pthread_create(pthread_t *id, const pthread_attr_t *attr, void* (*fun)(void*), void* arg)}}
| 3 = {{Tt|{{s|KernelMan|3|pthread_setaffinity_np}}}}
| _3 = {{KernelMan|3|pthread_setaffinity_np}}
}}
=== Szablony dokumentacji funkcji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
{{EfektKodów
| 1 = {{Tt|{{s|LzLua|mw.ustring.gsub}}}}
| _1 = {{LzLua|mw.ustring.gsub}}
}}
== Szablony kodowania znaków {{lpg|Unicode}} ==
{{EfektKodów
| 1 = {{Tt|{{s|UC|05F0|1520|D7 B0|}}}}
| _1 = {{UC|05F0|1520|D7 B0|}}
| 2 = {{Tt|{{s|UC/ref1|059B|HEBREW ACCENT TEVIR|}}}}
| _2 = {{UC/ref1|059B|HEBREW ACCENT TEVIR|}}
| 3 = {{Tt|{{s|UC/ref2|05AA|HEBREW ACCENT YERAH BEN YOMO}}}}
| _3 = {{UC/ref2|05AA|HEBREW ACCENT YERAH BEN YOMO}}
| 4 = {{Tt|{{s|UC/combining|05F0}}}}
| _4 = {{UC/combining|05F0}}
| 5 = {{Tt|{{s|UC/visual|x05F0}}}}
| _5 = {{UC/visual|x05F0}}
}}
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
2vj11br1m45xkwt6amrfn2vkm8wmrom
Wikibooks:Mechanizm MediaWiki
4
60755
551477
548826
2026-08-11T18:22:28Z
Persino
2851
/* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */
551477
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/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{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}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|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.
** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|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}} 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}} zestawu 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>
quy42mq1bejpkgmrahmtpi72f50q88r
Szablon:NawigacjaSpecjalna/Nawigacja/Pomoc:Spis treści
10
61114
551488
551321
2026-08-11T19:39:49Z
Persino
2851
551488
wikitext
text/x-wiki
<includeonly>{{Układ autonawigacji|krok={{{1}}}
|automat manualny=tak
|spis treści=Pomoc:Spis treści
|Pomoc:Spis treści|Pomoc - Spis treści
|Pomoc:Spis treści/Wstęp|Wstęp
|Wikibooks:Witamy nowicjuszy|Witamy nowicjuszy
|Wikibooks:Zasady i wskazówki|Zasady i wskazówki
|Wikibooks:Szybka pomoc|Szybka pomoc
|Wikibooks:Czym jest Wikibooks|Czym jest Wikibooks?
|Wikibooks:Różnice między Wikipedią i Wikibooks|Różnice między Wikipedią i Wikibooks
|Wikibooks:Dlaczego warto rozpocząć współpracę|Dlaczego warto rozpocząć współpracę?
|Wikibooks:Dlaczego używać wolnych podręczników|Dlaczego używać wolnych podręczników?
|Wikibooks:Dlaczego nie pisać na Wikibooks|Dlaczego nie pisać na Wikibooks?
|Wikibooks:Wikietykieta|Wikietykieta
|Pomoc:Wikietykieta|Wikietykieta
|Wikibooks:Neutralny punkt widzenia|Neutralny punkt widzenia
|Pomoc:Żargon użytkowników|Żargon użytkowników
|Wikibooks:Informacje prawne|Informacje prawne
|Wikibooks:Prawa autorskie|Prawa autorskie
|Pomoc:Spis treści/Edycja|Edycja
|Wikibooks:Brudnopis|Brudnopis
|Pomoc:Edycja kodu|Edycja kodu
|Wikibooks:Import stron|Import stron
|Wikibooks:Etapy rozwoju książek|Etapy rozwoju książek
|Wikibooks:Ilustracja Wikibooks|Ilustracja Wikibooks
|Pomoc:Jak edytować artykuły|Jak edytować artykuły?
|Wikibooks:Nazewnictwo artykułów|Nazewnictwo artykułów
|Pomoc:Podświetlanie składni|Podświetlanie składni
|Pomoc:Problemy z polskimi znakami|Problemy z polskimi znakami
|Pomoc:Quiz|Quiz
|Pomoc:Tworzenie podręcznika|Tworzenie podręcznika
|Wikibooks:Wandalizm|Wandalizm
|Wikibooks:Podręczniki do druku|Podręczniki do druku
|Pomoc:Tworzenie wersji do druku|Tworzenie wersji do druku
|Pomoc:Tworzenie wersji PDF|Tworzenie wersji PDF
|Pomoc:Tworzenie wersji PDF/javaLatex|Tworzenie wersji PDF/javaLatex
|Pomoc:Książki|Książki
|Pomoc:Spis treści/Wkład miesiąca|Wkład miesiąca
|Wikibooks:Wkład miesiąca/Aktualne głosowanie|Aktualne głosowanie
|Wikibooks:Wkład miesiąca/Wstęp|Wstęp
|Wikibooks:Wkład miesiąca/Regulamin|Regulamin
|Wikibooks:Wkład miesiąca/Nominacje|Nominacje
|Pomoc:Spis treści/Komunikacja|Komunikacja
|Wikibooks:Kanał IRC|Kanał IRC
|Wikibooks:Kontakt|Kontakt
|Wikibooks:Portal użytkowników|Portal użytkowników
|Pomoc:Archiwizowanie strony dyskusji|Archiwizowanie strony dyskusji
|Wikibooks:Przedstawicielstwo dyplomatyczne|Przedstawicielstwo dyplomatyczne
|Pomoc:Spis treści/Korzystanie z Wikibooks|Korzystanie z Wikibooks
|Wikibooks:Jak przeglądać Wikibooks|Jak przeglądać Wikibooks?
|Wikibooks:Księgozbiór|Księgozbiór
|Wikibooks:Księgozbiór/Wybrane|Księgozbiór - Wybrane
|Wikibooks:Księgozbiór/Alfabetycznie|Księgozbiór - Alfabetycznie
|Wikibooks:Księgozbiór/Tematycznie|Księgozbiór - Tematycznie
|Wikibooks:Księgozbiór/Poziom|Księgozbiór - Poziom
|Wikibooks:Księgozbiór/Status|Księgozbiór - Status
|Portal:Nauki ścisłe i przyrodnicze|Portal - Nauki ścisłe i przyrodnicze
|Portal:Informatyka|Portal - Informatyka
|Portal:Nauki techniczne|Portal - Nauki techniczne
|Portal:Nauki społeczne i humanistyczne|Portal - Nauki społeczne i humanistyczne
|Portal:Sport i rozrywka|Portal - Sport i rozrywka
|Portal:Hobby, poradniki i książki różne|Portal - Hobby, poradniki i książki różne
|Wikibooks:Promocja|Promocja
|Pomoc:Tryb ciemny|Tryb ciemny
|Pomoc:Spis treści/Historia Wikibooks|Historia Wikibooks
|Wikibooks:Historia Wikibooks|Historia Wikibooks
|Wikibooks:Piąte urodziny|Piąte urodziny
|Wikibooks:6. urodziny polskich Wikibooks|6. urodziny polskich Wikibooks
|Wikibooks:Wikikalendarz 2009|Wikikalendarz 2009
|Wikibooks:Sprzątanie Wikibooks|Sprzątanie Wikibooks
|Wikibooks:Sprzątanie Wikibooks/2009|Sprzątanie Wikibooks - 2009
|Wikibooks:Sprzątanie Wikibooks/2011|Sprzątanie Wikibooks - 2011
|Wikibooks:Statystyki|Statystyki
|Pomoc:Spis treści/Technikalia|Technikalia
|Wikibooks:Przestrzenie nazw|Przestrzenie nazw
|Wikibooks:Poczekalnia|Poczekalnia
|Wikibooks:Poczekalnia/naprawa|Poczekalnia - Naprawa
|Wikibooks:Poczekalnia/prowokacje|Poczekalnia - Prowokacje
|Wikibooks:Poczekalnia/artykuły|Poczekalnia - Artykuły
|Wikibooks:Poczekalnia/kwestie techniczne|Poczekalnia - Kwestie techniczne
|Wikibooks:Poczekalnia/Zgłoszenia|Poczekalnia - Zgłoszenia
|Wikibooks:Poczekalnia/Załatwione|Poczekalnia - Załatwione
|Wikibooks:VisualEditor|VisualEditor
|Pomoc:Nowa skórka – wektor|Nowa skórka – wektor
|Wikibooks:Skróty|Skróty
|Pomoc:Spis treści/Strona główna|Strona główna
|Pomoc:Spis treści/Wybrane książki|Wybrane książki
|Wikibooks:Mechanizm MediaWiki|Mechanizm MediaWiki
|Wikibooks:Szablony|Mechanizm MediaWiki - Szablony
|Wikibooks:Moduły|Mechanizm MediaWiki - Moduły
|Wikibooks:Moduły/Parametry|Moduł:Parametry
|Wikibooks:Moduły/Html|Moduł:Html
|Wikibooks:Moduły/Książkowe|Moduł:Książkowe
|Wikibooks:Moduły/Nazwy|Moduł:Nazwy
|Wikibooks:Moduły/Nazwy/Tom I|Moduł:Nazwy - Tom I
|Wikibooks:Moduły/Nazwy/Tom II|Moduł:Nazwy - Tom II
|Wikibooks:Moduły/Nazwy/Tom III|Moduł:Nazwy - Tom III
|Wikibooks:Moduły/Nazwy/Tom IV|Moduł:Nazwy - Tom IV
|Wikibooks:Moduły/Nazwy/Np|Moduł:Nazwy - Np
|Wikibooks:Moduły/Pudełko|Moduł:Pudełko
|Wikibooks:Moduły/Pudełko/Tom I|Moduł:Pudełko - Tom I
|Wikibooks:Moduły/Pudełko/Tom II|Moduł:Pudełko - Tom II
|Wikibooks:Moduły/Pudełko/Tom III|Moduł:Pudełko - Tom III
|Wikibooks:Moduły/Pudełko/Tom IV|Moduł:Pudełko - Tom IV
|Wikibooks:Moduły/Pudełko/Tom V|Moduł:Pudełko - Tom V
|Wikibooks:Moduły/Pudełko/Pomocne|Moduł:Pudełko - Pomocne
|Wikibooks:Moduły/Pudełko/Potrzebne|Moduł:Pudełko - Potrzebne
|Wikibooks:Moduły/Pudełko/ParametryCechy|Moduł:Pudełko - Parametry Cechy
|Wikibooks:Moduły/Ramka|Moduł:Ramka
|Wikibooks:Moduły/Specjalne|Moduł:Specjalne
|Wikibooks:Moduły/StronicowyParser|StronicowyParser
|Wikibooks:Moduły/StronicowyParser/Moduł główny|StronicowyParser - Moduł główny
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy|StronicowyParser - AnalizaSpisuRzeczy
|Wikibooks:Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|StronicowyParser - GłównaFunkcjaZbieraniaDanychStron
|Wikibooks:Moduły/StronicowyParser/Kategorie|StronicowyParser - Kategorie
|Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek|StronicowyParser - NumerLubNazwaArtykułówKsiążek
|Wikibooks:Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek|StronicowyParser - NumerLubNazwaNagłówkówKsiążek
|Wikibooks:Moduły/StronicowyParser/NumerObiektu|StronicowyParser - NumerObiektu
|Wikibooks:Moduły/StronicowyParser/NumeracjaObiektówStron|StronicowyParser - NumeracjaObiektówStron
|Wikibooks:Moduły/StronicowyParser/Potrzebne|StronicowyParser - Potrzebne
|Wikibooks:Moduły/StronicowyParser/Problemy|StronicowyParser - Problemy
|Wikibooks:Moduły/StronicowyParser/Rozdziały|StronicowyParser - Rozdziały
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom I|StronicowyParser - Rozdziały - Tom I
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom II|StronicowyParser - Rozdziały - Tom II
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom III|StronicowyParser - Rozdziały - Tom III
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom IV|StronicowyParser - Rozdziały - Tom IV
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V|StronicowyParser - Rozdziały - Tom V
|Wikibooks:Moduły/StronicowyParser/SpisTreści|StronicowyParser - SpisTreści
|Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom I|StronicowyParser - SpisTreści - Tom I
|Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom II|StronicowyParser - SpisTreści - Tom II
|Wikibooks:Moduły/StronicowyParser/StronaSubst|StronicowyParser - StronaSubst
|Wikibooks:Moduły/StronicowyParser/Tekst|StronicowyParser - Tekst
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron|StronicowyParser - ZbieranieDanychStron
|Wikibooks:Moduły/StronicowyParser/SzablonyTekstu|StronicowyParser - SzablonyTekstu
|Wikibooks:Moduły/StronicowyParser/informacje|StronicowyParser - informacje
|Wikibooks:Moduły/StronicowyParser/obiekty|StronicowyParser - obiekty
|Wikibooks:Moduły/Szeregi|Moduł:Szeregi
|Wikibooks:Moduły/Skrót|Moduł:Skrót
|Wikibooks:Moduły/Strony|Moduł:Strony
|Wikibooks:Moduły/Sekcja referencyjna|Moduł:Sekcja referencyjna
|Wikibooks:Szablony/Ogólne|Szablony - Ogólne
|Wikibooks:Szablony/Informacje|Szablony - Informacje
|Wikibooks:Szablony/PrzypisStrona|PrzypisStrona
|Wikibooks:Szablony/Podręcznikowe|Szablony - Podręcznikowe
|Wikibooks:Szablony/Książkowe|Szablony - Książkowe
|Wikibooks:Szablony/Tekst|Szablony - Tekst
|Wikibooks:Szablony/Zawartość|Szablony - Zawartość
|Wikibooks:Szablony/Nagłówki|Szablony - Nagłówki
|Wikibooks:Szablony/Przekierowania|Szablony - Przekierowania
|Wikibooks:Szablony/Języki|Szablony - Języki
|Wikibooks:Szablony/Liczby|Szablony - Liczby
|Wikibooks:Szablony/Kategorie|Szablony - Kategorie
|Wikibooks:Szablony/Opisy|Szablony - Opisy
|Wikibooks:Szablony/Znaczniki|Szablony - Znaczniki
|Wikibooks:Szablony/Szablony opływania|Szablony opływania
|Wikibooks:Szablony/Stronicowe|Szablony - Stronicowe
|Wikibooks:Szablony/Kontenerowe|Szablony - Kontenerowe
|Wikibooks:Szablony/Elastyczne|Szablony - Elastyczne
|Wikibooks:Szablony/Infoboksy/Prolog|Szablony - Infoboksy - Prolog
|Wikibooks:Szablony/Infoboksy/Tom I|Szablony - Infoboksy - Tom I
|Wikibooks:Szablony/Infoboksy/Tom II|Szablony - Infoboksy - Tom II
|Wikibooks:Szablony/Infoboksy/Tom III|Szablony - Infoboksy - Tom III
|Wikibooks:Szablony/Infoboksy/Tom IV|Szablony - Infoboksy - Tom IV
|Wikibooks:Szablony/Infoboksy/Tom V|Szablony - Infoboksy - Tom V
|Wikibooks:Szablony/Infoboksy/Tom VI|Szablony - Infoboksy - Tom VI
|Wikibooks:Szablony/Infoboksy/Komponenty|Szablony - Infoboksy - Komponenty
|Wikibooks:Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)
|Wikibooks:Szablony/Porządkowe|Szablony - Porządkowe
|Wikibooks:Szablony/Źródła artykułów|Szablony - Źródła artykułów
|Wikibooks:Szablony/Linki|Szablony - Linki
|Wikibooks:Szablony/Linki inteligentne|Szablony - Linki inteligentne
|Wikibooks:Szablony/Do usunięcia|Szablony - Do usunięcia
|Wikibooks:Szablony/Nawigacja|Szablony - Nawigacja
|Wikibooks:Szablony/Media|Szablony - Media
|Wikibooks:Szablony/Grafika|Szablony - Grafika
|Wikibooks:Szablony/Licencjonowanie|Szablony - Licencjonowanie
|Wikibooks:Szablony/Techniczne|Szablony - Techniczne
|Wikibooks:Szablony/Wikipedysta|Szablony - Wikipedysta
|Wikibooks:Szablony/Dyskusja Wikipedysty|Szablony - Dyskusja Wikipedysty
|Wikibooks:Szablony/MediaWiki|Szablony - MediaWiki
|Wikibooks:Szablony/Systemowe|Szablony - Systemowe
|Pomoc:Spis treści/Szablony/Tom I|Szablony - Tom I
|Pomoc:Spis treści/Szablony/Tom II|Szablony - Tom II
|Pomoc:Spis treści/Szablony/Tom III|Szablony - Tom III
|Pomoc:Spis treści/Szablony/Tom IV|Szablony - Tom IV
|Pomoc:Spis treści/Administracja|Administracja
|Wikibooks:Kwestie techniczne|Kwestie techniczne
|Wikibooks:Wikipedyści potrzebujący pomocy|Wikipedyści potrzebujący pomocy
|Wikibooks:Zgłoś błąd (ZB)|Zgłoś błąd (ZB)
|Wikibooks:Lista Naruszeń Praw Autorskich (NPA)|Lista Naruszeń Praw Autorskich (NPA)
|Wikibooks:Administratorzy|Administratorzy
|Wikibooks:Prośby do administratorów|Prośby do administratorów
|Wikibooks:Administratorzy interfejsu|Administratorzy interfejsu
|Wikibooks:Prośby do administratorów interfejsu|Prośby do administratorów interfejsu
|Wikibooks:Biurokraci|Biurokraci
|Wikibooks:Boty|Boty
|Wikibooks:Stewardzi|Stewardzi
|Wikibooks:Użytkownicy|Użytkownicy
|Wikibooks:Automatycznie zatwierdzeni użytkownicy|Automatycznie zatwierdzeni użytkownicy
|Wikibooks:Zatwierdzeni użytkownicy|Zatwierdzeni użytkownicy
|Wikibooks:Przyznawanie uprawnień|Przyznawanie uprawnień
|Wikibooks:Nazwa użytkownika|Nazwa użytkownika
|Wikibooks:Prośby o zmianę nazwy użytkownika|Prośby o zmianę nazwy użytkownika
|Wikibooks:Uprawnieni do logowania się z zablokowanych adresów IP|Uprawnieni do logowania się z zablokowanych adresów IP
|Wikibooks:GNU Free Documentation License|GNU Free Documentation License
}}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon manualny (ręczny), nie automatyczny, bo ustawiony za pomocą {{Parametr|automat manualny|tak}}, wskazujący poprzedni i następny artykuł pomocy oraz ich stronę główną, czyli spis po {{LinkPomoc2|Spis treści}}.}}{{Kategoria|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}</noinclude>
npwlyzd9zbl8auu20cskxf8lhvptdmc
Moduł:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron
828
62247
551364
548316
2026-08-11T14:28:42Z
Persino
2851
551364
Scribunto
text/plain
local p={};
function p.PobieranieInformacjiRamkiRozpatrywanejStrony(self)
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron={};
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy=nil;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local function DaneNazw(pelna_nazwa_strony)
local tabela_nazw={};
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
end;
local strona_aktualna=ksiazkowe_modul["PełnaNazwaArtykułu"]();
local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona_aktualna);
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")
..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")
..nazwa_ksiazki;
local pelna_nazwa_ksiazki_ustawienia="Szablon:Podręcznik/Ustawienia/"..pelna_nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki_ustawienia.."/config",tekst=true,};
if(ile>0)then
local frame=mw.getCurrentFrame();
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(pelna_nazwa_ksiazki_ustawienia);
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local pudelko_modul=require("Module:Pudełko");
local czy_strona_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](strona);
if(not czy_strona_niepoprawna)then
local html_modul=require("Module:Html");
strona=html_modul.DecodeHtml(strona,true);
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=strona_aktualna,};
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,tekst=true,};
if(ile>0)then
strona=ksiazkowe_modul["PełnaNazwaArtykułu"](strona);
if(strona~=strona_aktualna)then
local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona);
--local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=DaneNazw(strona_aktualna);
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni=aktualna_nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki=aktualna_nazwa_przestrzeni_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki=aktualna_nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu=aktualna_nazwa_artykulu;
if((aktualna_nazwa_przestrzeni~=nazwa_przestrzeni)
or(aktualna_nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki)
or(aktualna_nazwa_ksiazki~=nazwa_ksiazki)
or(aktualna_nazwa_artykulu~=nazwa_artykulu)
)then
local zastepcza=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępcza",}};
local parametry_modul=require("Module:Parametry");
self.tabela_listy_danych_analizy_ksiazki.alternatywna=parametry_modul.CzyTak(zastepcza);
if(not self.tabela_listy_danych_analizy_ksiazki.alternatywna)then
self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca=true;
end;
end;
end;
end;
end;
end;
end;
local tablica_zmiennych={};
tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};
tablica_zmiennych.linkobiekt={};
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
local tabela_listy_danych_analizy_ksiazki=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, true,tablica_zmiennych);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki))then
local stronicowyparser_numeracjaobiektowstron_modul=require("Module:StronicowyParser/NumeracjaObiektówStron");
stronicowyparser_numeracjaobiektowstron_modul.PrzetwarzanieZebranychInformacjiDanejKorzystanejStrony(self,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SpisRzeczyWedlePodanegoTekstu(self,tekst_artykulu,nazwa_strony,czy_artykul_korzystany, tylko_naglowek,obiekty,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,KtorySzablonMaZwracacKategorie,wzory_zamiast_kodow,tabela_elementow_strony_kodow)
----
local czy_kodowanie=((nazwa_modulu_aktualna_czy_biezaca)or(tablica_analizy_obiektow_strony_dany_modul));
----
if(not nazwa_modulu_aktualna_czy_biezaca)then
if czy_artykul_korzystany then
local nazwa_przestrzeni_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu or self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local nazwy_modul=require("Module:Nazwy");
nazwa_modulu_aktualna_czy_biezaca=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_aktualna_czy_biezaca,nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca,nazwa_ksiazki_aktualna_czy_biezaca,nazwa_artykulu_aktualna_czy_biezaca);
else
nazwa_modulu_aktualna_czy_biezaca=nazwa_strony;
end;
end;
local html_modul=require("Module:Html");
nazwa_strony=html_modul.EncodeId(nazwa_strony);
-----
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_modulu_aktualna_czy_biezaca_szablonowa=szablonowe_modul["SzablonowaNazwaStrony"](nazwa_modulu_aktualna_czy_biezaca);
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
local tab_naglowki=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu;
----
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
----
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
local tab_szablony_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.szablony_stron_zbiorczych;
local tab_szablony_inne_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.inne_szablony_stron_zbiorczych;
local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
----
local tab_szablony_indeksowania=stronicowyparser_obiekty_modul.szablony_indeksowania;
---
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
----
if(czy_kodowanie)then
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
local szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local SpecjalneWprowadzeniaTekstu=function(szablon,obiekt,kod,czy_szablon,czy_znacznik,czy_liczyc,funkcja1,funkcja2)
if(czy_szablon)then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_strony,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(naglowek)then
return funkcja1(parametr);
end;
end;
else
local tabela_nazw={};
local function ParametrNR(numer)
return stronicowyparser_potrzebne_modul.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw);
end;
local parametr=ParametrNR(1);
if(parametr)then
if(czy_liczyc)then
local ile_poziom=tonumber(ParametrNR(5)) or 6;
ile_poziom=(ile_poziom>0)and ile_poziom or 1;
ile_poziom=(ile_poziom<=6) and ile_poziom or 6;
local poziom=mw.ustring.rep("=",ile_poziom);
local adres_ksiazki=ParametrNR(2);
local nazwa_modulu_aktualna_czy_biezaca_strony=adres_ksiazki and ParametrNR(2) or nazwa_modulu_aktualna_czy_biezaca;
local adres=nazwa_modulu_aktualna_czy_biezaca_strony..((parametr~="")and ("/"..parametr)or "");
adres=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(adres,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres;
adres=html_modul.DecodeHtml(adres,true);
parametr=ParametrNR(3) or parametr;
local dodatek=ParametrNR(4);
parametr=parametr..((dodatek) and (" "..dodatek) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=adres,tekst=true,};
local ObiektKodNumer=function(szablon,obiekt)
local tablica_analizy_obiektow_strony_dany_modul_numer=tablica_analizy_obiektow_strony_dany_modul[obiekt];
local kod_numer=1;
for name,_ in pairs(tablica_analizy_obiektow_strony_dany_modul_numer)do
kod_numer=math.max(kod_numer,name);
end;
kod_numer=kod_numer+1;
tablica_analizy_obiektow_strony_dany_modul_numer[kod_numer]=szablon;
local kod_szablonowe=szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod_numer);
return kod_szablonowe;
end;
if(ile>0)then
local parametr=poziom..parametr..poziom;
return funkcja1(parametr);
else
local szablon="<span style=\"color:red;\">"..parametr.."</span>";
local kod_parametr=ObiektKodNumer(szablon,"ZNACZNIK");
local parametr=poziom..kod_parametr..poziom;
return funkcja1(parametr);
end;
else
return funkcja1(parametr);
end;
end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((zawartosc)and(nazwa))then
if(znaczniki_wprowadzenia_tekstu[nazwa])then
return funkcja2(nazwa,zawartosc,atrybuty);
end;
end;
end;
end;
tekst_artykulu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(tekst_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,nil,
function(szablon,obiekt,kod)
local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");local czy_wikitabelka=(obiekt=="WIKITABELA");
if((czy_szablon)or(czy_znacznik)or(czy_wikitabelka))then
local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,false,function()return true;end,function()return true;end);
if(wynik)then return true,nil,nil,true;end;
local rozdzial=mw.ustring.match(szablon,"\n(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n");
if(rozdzial)then
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial);
if(naglowek)then
return true,nil,nil,true;
end;
end;
end;
end,
function(szablon,obiekt,kod)
local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,true,
function(parametr)
parametr=mw.ustring.gsub(parametr,"\n"," ");
return "\n"..parametr.."\n ";
end,
function(nazwa,zawartosc,atrybuty)
if((zawartosc)and(nazwa))then
local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
local poziom_rowna=mw.ustring.rep("=",poziom);
return "\n"..poziom_rowna..zawartosc..poziom_rowna.."\n ";
end;
end);
if(wynik)then return wynik;end;
return nil;
end);
end;
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
----
local KtorySzablonMaZwracacKategorieNaglowek=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[1] or nil;
local KtorySzablonMaZwracacKategorieTekst=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[2] or nil;
local CzyJestTakiProblemJakoElementTablicy=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[3] or nil;
----
local function SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,parametry_wywolania_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania)
--local nazwa_szablonu=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
local jest_naglowkuj_w_tekscie_rozdzialu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania];
if(jest_naglowkuj_w_tekscie_rozdzialu)then
--local parametry_wywolania_szablonu_naglowek,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod);
local numeracja_aktualna=parametry_wywolania_szablonu["uchwyt"] or parametry_wywolania_szablonu[1];
----
if(numeracja_aktualna)then
local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1];
local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_modul.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil;
if(not lista_dwuelementowa)then
numeracja_aktualna=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja_aktualna,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or numeracja_aktualna;
numeracja_aktualna=html_modul.DecodeHtml(numeracja_aktualna,true);
lista_dwuelementowa={};
lista_dwuelementowa[1]=numeracja_aktualna;
else
numeracja_aktualna=lista_dwuelementowa[1];
end;
if(numeracja_aktualna~="")then
table.insert(numeracja,lista_dwuelementowa);
end;
----
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu_wywolania);
end;
end;
elseif(powtorka>=1)then
KtorySzablonMaZwracacKategorieNaglowek(nil,nazwa_szablonu_wywolania);
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
----
local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu;
----
local function SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
----
local jest_naglowkuj_w_tekscie_rozdzialu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu];
if(jest_naglowkuj_w_tekscie_rozdzialu)then
local numeracja=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
if((numeracja)and(numeracja~=""))then
local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1];
local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_modul.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil;
if(not lista_dwuelementowa)then
numeracja=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu;
numeracja=html_modul.DecodeHtml(numeracja,true);
else
numeracja=lista_dwuelementowa[1];
end;
end;
KtorySzablonMaZwracacKategorieTekst(numeracja,nazwa_szablonu);
return true;
end;
return false;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return false;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return false;
end);
end;
return false;
end;
local RefPrzypisowy=function(obiekt,kod)
return "["..((obiekt~="") and (obiekt.." ") or "")..kod.."]";
end;
local specjalne_modul=require("Module:Specjalne");
local nazwa_strony_z_naglowkami=((not tylko_naglowek)and(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "") or "");
for naglowek_tab,text_rozdzialu,poziom_rozdzialu in iterator do
local naglowek=naglowek_tab[1];
numeracja={};
if(czy_kodowanie)then
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(text_rozdzialu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod);
if(wynik)then break;end;
end;
end;
local powtorka=0;
local czy_szablony=nil;
local czy_indeksowanie=nil;
local function SzablonyWywolywane(szablon,obiekt,kod)
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
local czy_naglowek=tab_naglowki[nazwa_szablonu];
local czy_tak_naglowki=((czy_naglowek)and(mw.ustring.match(nazwa_szablonu,"^Link")and true or false) or ((not czy_naglowek)and nil));
if((czy_tak_naglowki~=nil)and(czy_tak_naglowki==false))then
return "";
elseif((tab_szablony[nazwa_szablonu])or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])or(tab_szablony_inne_szablony_stron_zbiorczych[nazwa_szablonu])or((czy_tak_naglowki~=nil)and(czy_tak_naglowki==true)))then
czy_szablony=true;
if(not czy_artykul_korzystany)then
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""))
if(self)then
local czy_link_lub_pobierz;
if(czy_tak_naglowki==nil)then
czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz");
else
czy_link_lub_pobierz=czy_tak_naglowki or mw.ustring.match(nazwa_szablonu,"^Pobierz");
end;
if(czy_link_lub_pobierz)then
stronicowyparser_zbieraniedanychstron_modul.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca);
else
stronicowyparser_zbieraniedanychstron_modul.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu);
end;
end;
end;
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
elseif((tab_szablony_strona_start[nazwa_szablonu])or(tab_szablony_szablony_stron_zbiorczych[nazwa_szablonu]))then
return "";
elseif(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])then
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
elseif((czy_indeksowanie)and(tab_szablony_indeksowania[nazwa_szablonu]))then
return nil,true;
end;
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return szablon;
end);
end;
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
--naglowek=mw.ustring.gsub(naglowek,"<ref>.-</ref>","");
--naglowek=Korekta(naglowek);
---naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local nazwa_rozdzialu_w_artykule;
if(not czy_kodowanie)then
nazwa_rozdzialu_w_artykule,naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,true,false);
else
local function SzablonyWywolywaneOgolny(naglowek)
local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"](
{
tekst=naglowek,
["nagłówek"]=true,
nieklasycznie=true,
kodowanie=false,
["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul,
},
function(szablon,obiekt,kod)
local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod);
return szablon,wynik;
end,
function(szablon,obiekt,kod)
return czy_indeksowanie;
end);
return naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne;
end;
czy_indeksowanie=true;
local Znaczniki;local SzablonyStylowe;local ZnakiSpecjalne;
naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=SzablonyWywolywaneOgolny(naglowek);
nazwa_rozdzialu_w_artykule=naglowek;
naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(tab_szablony_indeksowania[nazwa_szablonu])then return "";end;
end);
elseif(obiekt=="ZNACZNIK")then
szablon=Znaczniki(szablon,"li");
szablon=Znaczniki(szablon,"ol");
szablon=Znaczniki(szablon,"ul");
return szablon;
end;
end);
czy_indeksowanie=false;
nazwa_rozdzialu_w_artykule=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(nazwa_rozdzialu_w_artykule,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ATRYBUTY")then
return nil,true;
elseif(obiekt=="SZABLON")then
szablon=SzablonyWywolywaneOgolny(szablon);
return szablon;
end;
--szablon=Korekta(szablon);
--szablon=specjalne_modul["UsuńSzablonyStylów"](szablon);
--szablon=specjalne_modul["UsuńZnakiSpecjalne"](szablon);
return szablon;
end);
nazwa_rozdzialu_w_artykule=SzablonyStylowe(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=ZnakiSpecjalne(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=Znaczniki(nazwa_rozdzialu_w_artykule);
if(not czy_szablony)then
nazwa_rozdzialu_w_artykule=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=html_modul.EncodeSpecjalneZnakiHtml(nazwa_rozdzialu_w_artykule);
end;
end;
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[_%s]+"," ");
naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)","(%d+)"),function(obiekt,kod)
return "<sup>"..RefPrzypisowy(obiekt,kod).."</sup>";
end);
naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod)
if(not wzory_zamiast_kodow)then
return szablonowe_modul[((nazwa_strony)and(nazwa_strony=="")) and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
elseif(not czy_artykul_korzystany)then
if(tablica_obiektow_strony_danych_kodow_specjalnych_modul)then
if(tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then
local kod=tonumber(kod);
local szablon=tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][kod];
if(szablon)then
szablon=frame:preprocess(szablon);
return szablon;
end;
end;
end
end;
return szablonowe_modul[czy_artykul_korzystany and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)"),function(obiekt,kod)
return RefPrzypisowy(obiekt,kod);
end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod)
return szablonowe_modul.NormaKoduZakodowanegoHtmlTekstu("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
end);
--nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
--local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
for _,value_numeracja in ipairs(numeracja)do
obiekty[#obiekty+1]={value_numeracja,{nazwa_strony_z_naglowkami,elementy_linku[1], elementy_linku[2]}};
end;
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then
tablica_spisu_tresci={};
tablica_spisu_tresci.nazwa_strony=nazwa_strony_z_naglowkami;
end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(czy_kodowanie)then
if(czy_artykul_korzystany)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not CzyJestTakiProblemJakoElementTablicy())then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and((mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n*"))
or(mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$*")))
)then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*\n")
or mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*$")
or tekst_artykulu;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zerowy,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod);
if(wynik)then break;end;
end;
end;
end;
end;
return tablica_spisu_tresci;
end;
return p;
quz05t6nxla8lp2l20pt3ytpds5m5iw
Wikibooks:Moduły/Książkowe
4
63252
551535
546330
2026-08-12T03:19:54Z
Persino
2851
551535
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Książkowe}}|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 ksiazkowe_modul=require("Module:Książkowe");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł służy do obsługi na nazwach pełnych nazw stron {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, które są odpowiednio przekształcone, nie jak w funkcjach nazw {{ld2|Nazwy}}, która służy na bezpośredniego operowania na nazwach bez transformatowania nazw, a {{ld2|Książkowe}} dodatkowo transformuje nazwy, w fazie początkowej, tzn. jego argument, którym jest pełna nazwa strony, tylko jeden raz, i dzieli go na poszczególne nazwy możliwie minimalne przy pomocy tablicy:
<syntaxhighlight lang="lua">
local tabela_nazw={};
</syntaxhighlight>
która tworzona jest jako pusta tablica, której nie można modyfikować, tylko wsadzać do kolejnych funkcji nazw w omawianym module.
Poniższe funkcje mogą być wywołane w wersji ramkowej jako w postaci wikikodu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Książkowe|NazwaPrzestrzeni|Wikibooks:Moduły/Książkowe}}
</syntaxhighlight>
lub w wersji funkcyjnej programowej w języku {{lpg|Lua}} w {{lpr|Scribunto}}:
<syntaxhighlight lang="lua">
local ksiazkowe_modul=require("Module:Książkowe");
local tabela_nazw={};
local nazwa_oryginalna="Wikibooks:Moduły/Książkowe";
-- Wynikiem poniższego wywołania jest: "Wikibooks";
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](nazwa_oryginalna,tabela_nazw);
</syntaxhighlight>
Wynikiem powyższego wywołania jest: "Wikibooks", z której są usunięte wszystkie kody HTML i inne elementy według innych funkcji zdefiniowanej podanej do funkcji, czyli nawet w sumie zdekodowania zakodowanej pełnej nazwy strony przedstawionej w postaci zakodowanej w postaci kodów HTML i URL, ze strony nazwy oryginalnej.
Użycie powyżej nazwy: "NazwaPrzestrzeni", jest przykładowe, ale tutaj można użyć innej nazwy symbolizującą funkcję nazw, które są podane poniżej.
Nazwy zakodowane kodami HTML, w tym przypadku mają one wzór: {{Code|&#(%d+)}} lub {{Code|&#x(%x+)}}, według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, którym odpowiadają pewne nazwy. Też mogą być zakodowane funkcją: {{LzLua|mw.uri.encode}}, a je odkodowuje się: {{LzLua|mw.uri.decode}}. A to wszystko robi funkcja: {{Code|{{sr|#p.DecodeHtml|p=Html}}}} {{Patrz|p.DecodeHtml}}, do odkodowania nazwy zamiany kodów HTML na odpowiednie znaki, i dekodowania URL adresów stron internetowych, ale tutaj zastosowana do nazw.
== {{Code|NazwaKsiazkawaSilnik}} ==
Funkcja silnik potrzebna do budowy funkcji nazw, podane w poniższych rozdziałach, wykorzystują tę funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function NazwaKsiazkawaSilnik(frame,funkcja_nazw,tabela_nazw)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|funkcja_nazw}} - funkcja nazw z modułu {{Code|{{ld2|Nazwy}}}} (nazw),
* {{Code|tabela_nazw}} - tabela do szybszego uzyskiwania nazw, odziedziczona z modułu nazw.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|nazwa}} lub {{Code|1}} - pełna, ewentualnie zakodowana URL i HTML, lub inaczej, nazwa przestrzeni nazw w przeciwieństwie do pełnej nazwy według modułu {{ld2|Nazwy}},
* {{Code|bez transformacji}} - niepuste, wtedy są wywoływane czysto funkcje w {{ld2|Nazwy}} bez żadnego odkodowania URL i HTML,
* {{Code|funkcja}} - dodatkowa funkcja nazw potrzebna do transformacji pełnej nazwy strony, domyślnie jest wywoływana funkcja {{Code|p[""]}},
* {{Code|funkcja decode}} - nazwa funkcji drugiej do dekodowania, domyślnie jest to {{LinkPatrz|p.DecodeHtml}},
* {{Code|moduł}} - nazwa modułu, w której jest zawarta funkcja: {{Code|funkcja}}, ale domyślnie dla: {{Code|p[""]}}, jest to o domyślnej nazwie: {{Code|{{ld|Książkowe}}}},
* {{Code|moduł decode}} - nazwa modułu funkcji: {{LinkPatrz|p.DecodeHtml}}, domyślnie jest to: {{Code|{{Ld|Html}}}}.
Jeżeli zmienna {{Code|bez transformacji}} jest pusta lub niepodana, to względem powyższych zmiennych jest dekodowana, a później transformowana do pewnej wartości w postaci pewnego szeregu nazw. W ten sposób uzyskana nazwa jest zwracana przez funkcję.
Można tworzyć nowe funkcje, nawet te zdefiniowane, i nowo-zdefiniowane przez programistę języka {{lpg|Lua}}, w module {{Code|{{ld2|Książkowe}}}}, przy pomocy schematu:
<syntaxhighlight lang="lua">
p["NazwaFunkcjiNazw"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"NAZWAFUNKCJINAZW",tabela_nazw);
end;
</syntaxhighlight>
Przykładem nazwy: {{Code|NazwaFunkcjiNazw}} jest: {{Code|NazwaPrzestrzeni}}, przy drugi parametrze funkcji: {{Code|NazwaKsiazkawaSilnik}}, czyli: {{Code|NAZWAFUNKCJINAZW}}, przyjmuje, wtedy wartość: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}.
Funkcja lub funkcje zdefiniowane do dekodowana podana w postaci parametrów dla wartości zawartch w zmiennych: {{Code|funkcja decode}} i {{Code|moduł decode}}, a nawet do transformacji: {{Code|funkcja}} i {{Code|moduł}}, mogą być umieszczone w dowolnym module lub modułach, lub nawet w module samego programu, a zarazem biblioteki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
== {{Code|p[""]}} ==
Funkcja tożsamościowa nazw, która zwraca wartość taką samą, jaką podaliśmy jako argument.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p[""]=function(parametr)
return parametr;
end;
</syntaxhighlight>
Przykłady użycia:
<syntaxhighlight lang="lua">
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_oryginalna="Wikibooks:Moduły/Książkowe";
local nazwa_wyjsciowa=ksiazkowe_modul[""](nazwa_oryginalna);
if(nazwa_oryginalna==nazwa_wyjsciowa)then
return "Dwie nazwy są sobie równe";
end;
return "Dwie nazwy są sobie nierówne";
</syntaxhighlight>
== {{Code|p.NazwaPrzestrzeni}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia nazwy przestrzeni nazw, ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p.NazwaPrzestrzeni=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENI",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["NazwaPrzestrzeniKsiążki"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m["NAZWAPRZESTRZENIKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia nazwy przestrzeni nazw książki bez nazwy przestrzeni dostępnych na polskim {{NAZWASERWISU|link=tak|klucz projektu=b|wikipedia=tak|po=ie}}, ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["NazwaPrzestrzeniKsiążki"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENIKSIĄŻKI",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["NazwaTytułuKsiążki"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m["SUBNAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia sub nazwy książki bez nazwy przestrzeni nazw książki, czyli służy do liczenia tytułu książki, ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["NazwaTytułuKsiążki"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"SUBNAZWAKSIĄŻKI",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["NazwaArtykułuKsiążki"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m["NAZWAARTYKUŁUKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia nazwy artykułu książki bez nazwy książki, ale przed tym wykorzystaniem dekoduje, pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["NazwaArtykułuKsiążki"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"NAZWAARTYKUŁUKSIĄŻKI",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["NazwaKsiążki"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m["NAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia nazwy książki bez nazwy przestrzeni nazw dostępne na polskim {{NAZWASERWISU|link=tak|klucz projektu=b|wikipedia=tak|po=ie}}, bez nazwy artykułu danego artykułu, ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["NazwaKsiążki"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"NAZWAKSIĄŻKI",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["PełnaNazwaKsiążki"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia pełnej nazwy książki z przestrzenią nazw ksiązki i z nazwą przestrzeni nazw dostępne na polskim: {{NAZWASERWISU|link=tak|klucz projektu=b|wikipedia=tak}}, bez nazwy artykułu podanego artykułu, ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["PełnaNazwaKsiążki"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"PEŁNANAZWAKSIĄŻKI",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["PełnaNazwaArtykułu"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m["PEŁNANAZWASTRONY"]|p=Nazwy/Tom II}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia pełnej nazwy strony (artykułu), ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["PełnaNazwaArtykułu"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"PEŁNANAZWASTRONY",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["NazwaArtykułu"]}} ==
Funkcja wykorzystuje funkcję nazw: {{Code|{{sr|#m.NAZWASTRONY|p=Nazwy/Tom II}}}}, modułu nazw: {{Code|{{ld2|Nazwy}}}}, do liczenia nazwy stron (artykułów) bez nazwy przestrzeni nazw dostępnych na polskim {{NAZWASERWISU|link=tak|klucz projektu=b|po=ie}}, ale przed tym wykorzystaniem, dekoduje pełne nazwy względem pewnych funkcji w modułach, lub tego nie robi, jeżeli jest zdefiniowana niepusta zmienna: {{Code|bez transformacji}}, w tablicy ramki tej funkcji.
Definicja pełna funkcji:
<syntaxhighlight lang="lua">
p["NazwaArtykułu"]=function(frame,tabela_nazw)
tabela_nazw=tabela_nazw or {};
return NazwaKsiazkawaSilnik(frame,"NAZWASTRONY",tabela_nazw);
end;
</syntaxhighlight>
== {{Code|p["PełnaNazwaStronicowejKsiążki"]}} ==
Funkcja liczy nazwę książki, ale wpierw, musi zdekodować pełną nazwę strony, zwykle z URL i HTML, lub tych zdefiniowanych, a gdy nie podana jest nazwa strony, to liczy pełną nazwę artykułu według funkcji: {{Code|{{sr|#p["PełnaNazwaKsiążki"]|p=Książkowe}}}}, a gdy pełna nazwa strony przybiera wartość pustą według łańcuchów {{lpg|Lua}}, czyli {{Code|""}}, wtedy wykorzystuje funkcję systemową modułu nazw {{Code|{{ld2|Nazwy}}}}, czyli: {{Code|{{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}} {{Patrz|PEŁNANAZWAKSIĄŻKI-PełnaNazwaStronicowejKsiążki}}, i liczy w ten sposób ciąg pusty, w przeciwnym wypadku, gdy pełna nazwa strony posiada na początku dwukropek, wtedy jest liczona pełna nazwa książki według tej funkcji: {{LinkPatrz|PEŁNANAZWAKSIĄŻKI-PełnaNazwaStronicowejKsiążki}}. W innym wypadku, gdy tak nie jest, wtedy jest liczona nazwa przestrzeni nazw funkcją: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}, by wskazać, że strona nie jest w przestrzeni głównej, wtedy jest liczona pełna nazwa książki na podstawie: {{LinkPatrz|PEŁNANAZWAKSIĄŻKI-PełnaNazwaStronicowejKsiążki}}. A jeżeli jednak tak nie jest, bo mamy wtedy możliwą przestrzeń główną według wskazań początkowych, wtedy wypadałoby policzyć nazwę książki, która musi istnieć według z: {{Code|{{sr|#m["NAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, a jeśli ona rzeczywiście nie istnieje, to może być to przestrzeń {{Np|Wikijunior|link=tak}}, wtedy liczymy według: {{LinkPatrz|PEŁNANAZWAKSIĄŻKI-PełnaNazwaStronicowejKsiążki}}, a jeżeli to nie jest ta przestrzeń nazw dla istniejącej na pewno strony, tylko ta strona nie istnieje, wtedy musimy policzyć nazwę przestrzeni nazw z: {{Code|{{sr|#p.NazwaPrzestrzeni|p=Książkowe}}}}, dostępną na polskim {{NAZWASERWISU|link=tak|klucz projektu=b|wikipedia=tak|po=ie}}, i nazwę przestrzeni książki funkcją: {{Code|{{sr|#p["NazwaPrzestrzeniKsiążki"]|p=Książkowe}}}}, aktualnej strony, które łączymy razem w pełną nazwę przestrzeni książki z nazwą strony podanej jako pierwszy argument naszej rozważanej funkcji, co na samym końcu pozostało policzyć na podstawie: {{LinkPatrz|PEŁNANAZWAKSIĄŻKI-PełnaNazwaStronicowejKsiążki}}, którą jest wykryta pełna nazwa książki na samym końcu obliczeń.
Nasza funkcja liczy pełną nazwę książki, do której należy podana nazwa książki, która może mieć niepełny adres, według metod powiedzianych powyżej, sprawdzając różne możliwości, wtedy otrzymujemy pełną nazwą książki na samym końcu, do której należy ten artykuł, który został podany, szczególną postacią pełnej nazwy artykułu jest nazwa książki.
Przykładem użycia:
<syntaxhighlight lang="lua">
local ksiazkowe_modul=require("Module:Książkowe");
local tabela_nazw={};
local nazwa_artykułu="Ksiązka/Artykuł";
local nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_artykułu,tabela_nazw);
</syntaxhighlight>
Wtedy możliwymi wartościami pełnych wartości nazw artykułów dla wartości niepełnej nazwy artykułu: {{Code|Książka/Artykuł}}, są:
* {{Code|Książka/Artykuł}} - gdy strona leży w przestrzeni nazw {{Np|(main)|link=tak}},
* {{Code|Wikijunior:Książka/Artykuł}} - gdy strona leży w przestrzeni nazw {{Np|Wikijunior|link=tak}},
* {{Code|Wikibooks:Brudnopis/<użytkownik>/Książka/Artykuł}} - gdy początkowy artykuł podanej w nawie rozważanej funkcji leży w niby-przestrzeni nazw: '''{{lr2|Brudnopis}}/<użytkownik>''', w przestrzeni nazw {{Np|Project|link=tak}},
* {{Code|Wikipedysta:<użytkownik>/Książka/Artykuł}} - gdy początkowy artykuł podanej w nawie rozważanej funkcji leży w niby-przestrzeni nazw: '''{{Np|User|link=tak}}:<użytkownik>''', w przestrzeni nazw {{Np|User|link=tak}}.
Jeżeli mamy te artykuły w możliwych do uzyskania postaciach, to wtedy jest liczona ich pełna nazwa książki przy pomocy: {{LinkPatrz|PEŁNANAZWAKSIĄŻKI-PełnaNazwaStronicowejKsiążki}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
refzdhsbh68u4jdjx9ll2r05o0m6z3a
Wikibooks:Moduły/Html
4
63462
551534
546331
2026-08-12T03:17:59Z
Persino
2851
551534
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu.
== {{Code|p.KodowanieOmijanieFunkcyjne}} ==
Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku:
<syntaxhighlight lang="lua">
function(kod)
return "&"..kod..";";
end
</syntaxhighlight>
Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany.
Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych,
* {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi,
* {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany,
* {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="Oto jest tekst wywołania: \"#\"";
local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst)
return mw.uri.encode(tekst);
end);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22#%22";
</syntaxhighlight>
== {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} ==
Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]].";
-- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,};
-- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},};
local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]].";
</syntaxhighlight>
== {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} ==
Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]].";
-- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,};
-- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},};
local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]].";
</syntaxhighlight>
== {{Code|p.ZnakiSpecjalneTaguNowiki}} ==
Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}.
Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnakiSpecjalneTaguNowiki(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
-- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,};
-- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},};
local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</syntaxhighlight>
== {{Code|p.ZnakiSpecjalneWikiLinku}} ==
Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnakiSpecjalneWikiLinku(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
-- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,};
-- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},};
local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</syntaxhighlight>
== {{Code|p.EncodeSpecjalneZnakiHtml}} ==
Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}.
Parametry ramki funkcji tablicy transportu:
* {{Code|html}} - zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}},
* {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
-- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,};
-- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},};
local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local html2="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</syntaxhighlight>
== {{Code|p.EncodeZnakProloguList}} ==
Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeZnakProloguList(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|EncodeZnakProloguList|tekst=
* Oto jest pierwszy element listy,
*: Oto jest drugi element listy.
}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy.";
-- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,};
-- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},};
local tekst2=html_modul.EncodeZnakProloguList(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy.";
</syntaxhighlight>
== {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} ==
Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}.
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}},
* {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit§ion=2}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="Wikibooks:Strona?action=edit§ion=2";
-- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,};
-- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},};
local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="Wikibooks:Strona?action=edit&section=2";
</syntaxhighlight>
== {{Code|p.PrzypisanieZnakoweEncodeHtml}} ==
Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PrzypisanieZnakoweEncodeHtml(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="Wikibooks:Strona=Parametry";
-- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,};
-- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},};
local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="Wikibooks:Strona=Parametry";
</syntaxhighlight>
Użycie w szablonie w postaci parametry nienazwanego (numerowanego):
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|Wikibooks:Strona=Parametry}}
</syntaxhighlight>
może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|Wikibooks:Strona=Parametry}}
</syntaxhighlight>
Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"]|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml|p=Html}}}}, aby zamienić przypisanie na parametr numerowany.
== {{Code|p.ZamianaDwukropkaNaKodHtml}} ==
Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaDwukropkaNaKodHtml(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|tekst}} - zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="subst:msg:Szablon:Nazwa_strony";
-- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,};
-- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},};
local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst);
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="subst:msg:Szablon:Nazwa_strony";
</syntaxhighlight>
== {{Code|p.KodHTMLZnaku}} ==
=== Odpowiednik szablonowy ===
Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
=== Funkcja biblioteczna ===
Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KodHTMLZnaku(frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod dziesiętny {{Strong|HTML}},
* {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local znak="k";
-- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,};
-- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},};
local tekst2=html_modul.KodHTMLZnaku(znak);
-- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",};
local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},};
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="k";
local tekst3="&#107;";
</syntaxhighlight>
Szablonowo taką zamianę możemy napisać:
* {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}}
* {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}}
* {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}}
* {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}}
Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}:
<syntaxhighlight lang="mediawiki">
<!-- Wyświetla wynik: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#107;"; -->
{{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}}
</syntaxhighlight>
== {{Code|p["KodyHTMLZnakówWikiCiągu"]}} ==
=== Odpowiednik szablonowy ===
Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
=== Funkcja biblioteczna ===
Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p["KodyHTMLZnakówWikiCiągu"](frame)...end;
</syntaxhighlight>
Parametry ramki funkcji tablicy transportu:
* {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8,
* {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="k{{s";
-- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,};
-- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},};
local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak);
-- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",};
local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},};
</syntaxhighlight>
Wyniki działania:
<syntaxhighlight lang="lua">
local tekst2="k{{s";
local tekst3="k&#123;&#123;s";
</syntaxhighlight>
Szablonowo taką zamianę możemy napisać:
* {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}
* {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}}
* {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}
* {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}}
Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}:
<syntaxhighlight lang="mediawiki">
<!-- Wyświetla wynik: "k{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#123;s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}}
</syntaxhighlight>
== {{Code|p.EncodeId}} ==
Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeId(id,bez_transformacji)...end;
</syntaxhighlight>
Parametry nieramkowe normalne funkcji:
* {{Code|id}} - ciąg do przeinaczenia,
* {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga";
local id2=html_modul.EncodeId(id,false);
</syntaxhighlight>
Wynikiem tego:
<syntaxhighlight lang="lua">
local id2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa";
</syntaxhighlight>
Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga";
local id2=html_modul.EncodeId(id,true);
</syntaxhighlight>
Wynikiem działania jest wartość ostatniej zmiennej:
<syntaxhighlight lang="lua">
local id2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga";
</syntaxhighlight>
== {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} ==
Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "‎", składający się z trzech bajtów: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- Zamiana tego kodu na znak;
tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst);
-- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty;
tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst);
</syntaxhighlight>
Wynikiem tego kodu jest wartość ukryta pod zmienną:
<syntaxhighlight lang="lua">
local tekst="Oto jest znak: .";
</syntaxhighlight>
== {{Code|p.EncodeWiki}} ==
Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|‎}}}} dzięki funkcji: {{Code|{{sr|#|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeWiki(parametr,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|parametr}} - tekst, który chcemy zakodować,
* {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local parametr="__Oto jest znak: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__";
local parametr2=html_modul.EncodeWiki(parametr,false);
local parametr3=html_modul.EncodeWiki(parametr,true);
</syntaxhighlight>
Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości:
<syntaxhighlight lang="lua">
local parametr2="Oto_jest_znak:_""_i_inne_znaki_w_URL:_"https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&action=edit#Obsługa;"";
local parametr3="__Oto jest znak: "" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
</syntaxhighlight>
== {{Code|p.DecodeWiki}} ==
Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|‎}}}}, dzięki funkcji: {{Code|{{sr|#|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeWiki(parametr,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|parametr}} - tekst, który chcemy odkodować,
* {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local parametr="__Oto jest znak: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
local parametr2=html_modul.DecodeWiki(parametr,false);
local parametr3=html_modul.DecodeWiki(parametr,true);
</syntaxhighlight>
Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość:
<syntaxhighlight lang="lua">
local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"";
local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__";
</syntaxhighlight>
== {{Code|p.IsEncodedHtml}} ==
Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IsEncodedHtml(parametr,encode,encode_real)..end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|parametr}} - parametr do sprawdzenia - wymagany,
* {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}},
* {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Pierwszy przykład:
local parametr1="abc?edit=action";
-- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany;
local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false);
-- Drugi przykład:
local parametr2="a%YTbc?edit=action;";
-- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany;
local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false);
</syntaxhighlight>
== {{Code|p.EncodeHtml}} ==
Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI").
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|parametr}} - parametr do transformacji kodowania,
* {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}},
* {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}.
{{Hr}}
Przykłady pierwszy - podany tekst już zakodowany:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Tekst do zakodowania;
local parametr="abc___?action=edit&section=21#nagłówek";
-- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada;
local parametr2=html_modul.EncodeHtml(parametr,true,false,false);
</syntaxhighlight>
Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością:
<syntaxhighlight lang="lua">
-- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&section=21#nagłówek";
</syntaxhighlight>
{{Hr}}
Przykłady drugi - podany tekst jeszcze nie zakodowany:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Tekst do zakodowania;
local parametr="a%YTbc___?action=edit;";
-- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada;
local parametr2=html_modul.EncodeHtml(parametr,true,false,false);
</syntaxhighlight>
Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością:
<syntaxhighlight lang="lua">
-- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "=";
local parametr2="a%25YTbc___%3Faction%3Dedit;";
</syntaxhighlight>
== {{Code|p.DecodeHtml}} ==
Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|parametr}} - parametr do odkodowania,
* {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}},
* {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}},
* {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków;
local parametr="a%25YTbc___%3Faction%3Dedit&section=23;";
local parametr2=html_modul.DecodeHtml(parametr,true);
</syntaxhighlight>
Wynik funkcji jest ukryty pod adresem:
<syntaxhighlight lang="lua">
-- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki;
local parametr2="a%YTbc ?action=edit§ion=23;";
</syntaxhighlight>
== {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} ==
Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>";
local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst);
</syntaxhighlight>
Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}:
<syntaxhighlight lang="lua">
-- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz;
local tekst2="<span id=\"Znaki<>\"\">To jest zawartość</span>";
</syntaxhighlight>
== {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} ==
Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|<}}}}, {{Code|{{Nowiki|>}}}} i {{Code|{{Nowiki|&}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|\"}}}} na {{Code|<nowiki>\"</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\"nazwa\"\">Zawartość znacznika</a>";
local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst);
</syntaxhighlight>
Otrzymana zawartość jest pod {{Code|tekst2}}:
<syntaxhighlight lang="lua">
-- Widzimy, że kody odpowiednie HTML, tzn.: "<", ">" i "&" zostały zamienione na odpowwiednie znaki;
local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>";
</syntaxhighlight>
== {{Code|p["NagłówekStronyAdresu"]}} ==
Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników,
* {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}.
Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik.
Parametry funkcji ramki parametry {{Code|frame}}:
* {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres,
* {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony ";
local tabela_nazw_adresu={};
-- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu);
local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu);
</syntaxhighlight>
Wartość nagłówka jest w zmiennej:
<syntaxhighlight lang="lua">
-- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość;
local naglowek="Nagłówek strony";
</syntaxhighlight>
== {{Code|p["ParametryStronyAdresu"]}} ==
Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony,
* {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}.
Parametry funkcji ramki parametry {{Code|frame}}:
* {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres,
* {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony ";
local tabela_nazw_adresu={};
-- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu);
local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu);
</syntaxhighlight>
Wartość nagłówka jest w zmiennej:
<syntaxhighlight lang="lua">
-- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne;
local parametry="action=edit§ion=2";
</syntaxhighlight>
== {{Code|p["NazwaStronyAdresu"]}} ==
Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony,
* {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}.
Parametry funkcji ramki parametry {{Code|frame}}:
* {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres,
* {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony ";
local tabela_nazw_adresu={};
-- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu);
local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu);
</syntaxhighlight>
Wartość nagłówka jest w zmiennej:
<syntaxhighlight lang="lua">
-- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne;
local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna";
</syntaxhighlight>
== {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} ==
Funkcja wydziela nazwę strony z parametrów adresu strony.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
<syntaxhighlight lang="lua">
p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony.
Parametry funkcji ramki parametry {{Code|frame}}:
* {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres,
* {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony ";
-- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true);
local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil);
</syntaxhighlight>
Wartość nagłówka jest w zmiennej:
<syntaxhighlight lang="lua">
-- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne;
local nazwa_strony="Strona główna";
</syntaxhighlight>
== {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} ==
Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej,
* {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}.
Parametry funkcji ramki parametry {{Code|frame}}:
* {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres,
* {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony ";
local tabela_nazw_adresu={};
-- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu);
local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu);
</syntaxhighlight>
Wartość pełnego adresu strony poprawiona jest w zmiennej:
<syntaxhighlight lang="lua">
-- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres;
local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit§ion=2#Nagłówek strony";
</syntaxhighlight>
== {{Code|p.URLStrona}} ==
Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.URLStrona(frame)...end;
</syntaxhighlight>
Parametry ramki:
* {{Code|1}} lub {{Code|url}} - adres strony,
* {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik.
Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html"):
local url="//pl.wikibooks.org/wiki/Strona_artykułu";
local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,};
</syntaxhighlight>
Wartości zmiennych kryją się pod:
<syntaxhighlight lang="lua">
-- Widzimy, że nazwa serwera jest bez prawych ukośników;
local serwer="pl.wikibooks.org";
-- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi;
local nazwa="wiki/Strona_artykułu";
-- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu";
</syntaxhighlight>
== {{Code|p["UrlBezProtokołu"]}} ==
Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["UrlBezProtokołu"]=function(frame)...end;
</syntaxhighlight>
Parametry ramki:
* {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem.
Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local mail="użytkownik@skrzynka.org";
-- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail);
local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,};
---
local url="https://pl.wikibooks.org/wiki/Strona";
-- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url);
local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,};
---
local url="//pl.wikibooks.org/wiki/Strona";
-- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url);
local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,};
---
local url="pl.wikibooks.org/wiki/Strona";
-- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url);
local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,};
</syntaxhighlight>
Wyniki otrzymane z powyższych przykładów są:
<syntaxhighlight lang="lua">
local adres1,protokol1,sposob1="//skrzynka.org","mail",1;
local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2;
local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3;
local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1;
</syntaxhighlight>
== {{Code|p.DecodeKoduHTMLZnaku}} ==
Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeKoduHTMLZnaku(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi;
local tekst="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ";
-- Wywołanie funkcji odkodujący kody HTML;
local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst);
</syntaxhighlight>
Otrzymany wynik jest pod zmienną:
<syntaxhighlight lang="lua">
-- Widzimy, że tekst został zdekodowany ze znaków HTML;
local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ";
</syntaxhighlight>
== {{Code|p.ZamianaEncodeTekst}} ==
Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaEncodeTekst(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga";
local tekst2=html_modul.ZamianaEncodeTekst(tekst);
</syntaxhighlight>
Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}:
<syntaxhighlight lang="lua">
local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga";
</syntaxhighlight>
== {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} ==
Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end;
</syntaxhighlight>
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru;
local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa";
-- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku;
local wzor="[^/%?%=&:%#]+";
-- Wywołanie funkcji kodującej;
local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor);
</syntaxhighlight>
Wynikiem funkcji, co kryje się pod zmienną:
<syntaxhighlight lang="lua">
-- Zakodowało jeszcze więcej niż na samym początku było zakodowane;
local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga";
</syntaxhighlight>
== {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} ==
Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|#}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&#(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&#x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|#}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej).
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - adres do potrzelenia na trzy części.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="https://pl.wikibooks.org/wiki/Strona główna###To_nie_jest nagłówek?action=edit§ion=2#Nagłówek strony";
-- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek";
local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres);
</syntaxhighlight>
Otrzymane wartości tych zmiennych kryją się pod adresami:
<syntaxhighlight lang="lua">
local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona główna###To_nie_jest nagłówek","action=edit§ion=2","Nagłówek strony",3;
</syntaxhighlight>
Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}).
== {{Code|p.TworzenieAdresuHtml}} ==
Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&#}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka,
* {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}},
* {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie,
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona główna###To_nie_jest nagłówek","action=edit§ion=2","Nagłówek strony",3;
local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek);
</syntaxhighlight>
Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta:
<syntaxhighlight lang="lua">
local adres="https://pl.wikibooks.org/wiki/Strona główna###To_nie_jest nagłówek?action=edit§ion=2#Nagłówek strony";
</syntaxhighlight>
Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}).
== {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} ==
Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - pełny adres do przetworzenia,
* {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka,
* {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony,
* {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu.
Przykład takiego wywołania:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local function ParametryEncodeURL(a,b,c)
return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c);
end;
local function OperacjeHtml(adres)
adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL);
adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL);
return adres;
end;
return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,
-- Funkcja: funkcja_strona;
function(strona)
strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+");
return strona;
end,
-- Funkcja: funkcja_parametry;
OperacjeHtml,
-- Funkcja: funkcja_naglowek;
function(naglowek)
naglowek=html_modul.ZamianaEncodeTekst(naglowek);
return naglowek;
end
);
</syntaxhighlight>
== {{Code|p.ParametryEncodeURL}} ==
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem,
* {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry,
* {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka,
* {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek.
Przykłady takiego wywołania:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa";
local adres2=html_modul.ParametryEncodeURL(adres,true,
function(strona)
strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+");
return strona;
end,
function(naglowek)
naglowek=html_modul.ZamianaEncodeTekst(naglowek);
return naglowek;
end);
</syntaxhighlight>
Wartość zmiennej {{Code|adres2}} jest w wartości:
<syntaxhighlight lang="lua">
local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga";
</syntaxhighlight>
== {{Code|p.ParametryZaawansowanyEncodeURL}} ==
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem,
* {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry,
* {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka,
* {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek.
Przykłady takiego wywołania:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?";
local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true,
function(strona)
strona=mw.uri.decode(strona);
strona=html_modul.EncodeSpecjalneZnakiHtml(strona);
strona=mw.uri.encode(strona);
return strona;
end,
function(naglowek)
naglowek=mw.uri.decode(naglowek);
naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek);
naglowek=mw.uri.encode(naglowek);
return naglowek;
end);
</syntaxhighlight>
Wartość zmiennej {{Code|adres2}} jest w wartości:
<syntaxhighlight lang="lua">
local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B";
</syntaxhighlight>
== {{Code|p.EncodeParametryHtml}} ==
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem,
* {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry,
* {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka,
* {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek.
Przykłady takiego wywołania:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?";
local adres2=html_modul.EncodeParametryHtml(adres,true,
function(strona)
strona=html_modul.EncodeHtml(strona);
return strona;
end,
function(naglowek)
naglowek=html_modul.EncodeHtml(naglowek);
return naglowek;
end);
</syntaxhighlight>
Wartość zmiennej {{Code|adres2}} jest w wartości:
<syntaxhighlight lang="lua">
local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F";
</syntaxhighlight>
== {{Code|p.EncodeZaawansowanyParametryHtml}} ==
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem,
* {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany,
* {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry,
* {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka,
* {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek.
Przykłady takiego wywołania:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?";
local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true,
function(strona)
strona=mw.uri.decode(strona);
strona=html_modul.EncodePodstawoweHtmlTekstu(strona);
strona=mw.uri.encode(strona);
return strona;
end,
function(naglowek)
naglowek=mw.uri.decode(naglowek);
naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek);
naglowek=mw.uri.encode(naglowek);
return naglowek;
end);
</syntaxhighlight>
Wartość zmiennej {{Code|adres2}} jest w wartości:
<syntaxhighlight lang="lua">
local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B";
</syntaxhighlight>
== {{Code|p.EncodeHashKoduHtmlTekstu}} ==
Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|#}}}}, {{Code|{{Nowiki|#}}}} i {{Code|{{Nowiki|#}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku.
Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|#}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeHashKoduHtmlTekstu(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do przetworzenia.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Kody do zamienienia
local tekst="#, # i #";
-- Przetwarzanie tekstu
local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst);
</syntaxhighlight>
Wynik jest pod zmienną:
<syntaxhighlight lang="lua">
-- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&num;" kodu HTML "#" dla znaku "#";
local tekst2,ile,ile2="&num;, &num; i &num;",3,3;
</syntaxhighlight>
== {{Code|p.DecodeHashKoduHtmlTekstu}} ==
Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|#}}}}, {{Code|{{Nowiki|#}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|#}}}} kodu {{Code|{{Nowiki|#num}}}}, używając tej funkcji.
Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do przetworzenia,
* {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#num}}}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Zamienione wcześniej kody: tekstu "#, # i #", kolejno na "&num;";
local tekst="&num;, &num; i &num;";
-- Odkodowanie znaków "&num;" w tekście;
local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3);
</syntaxhighlight>
Wynik jest ukryty pod zmienną:
<syntaxhighlight lang="lua">
local tekst2="#, # i #";
</syntaxhighlight>
== {{Code|p.EncodeTempHashKoduHtmlTekstu}} ==
Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|#}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeTempHashKoduHtmlTekstu(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do przetworzenia.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Mamy tutaj kody HTML znaku: "#", czyli: "#" i "#" oraz jeden od spacji: " ";, a tam "#"zamieniamy na "#";
local tekst="https://pl.wikibooks.org/wiki/Strona główna###To_nie_jest nagłówek?action=edit§ion=2#Nagłówek strony";
-- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2";
local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst);
</syntaxhighlight>
Wynik tego jest pod zmienną:
<syntaxhighlight lang="lua">
local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit§ion=2#Nagłówek strony",3,1;
</syntaxhighlight>
== {{Code|p.DecodeTempHashKoduHtmlTekstu}} ==
Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|#}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end;
</syntaxhighlight>
Parametry zwykłe funkcji:
* {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części,
* {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej,
* {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "#";
local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit§ion=2#Nagłówek strony";
-- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst);
local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1);
</syntaxhighlight>
Wynik tego jest pod zmienną:
<syntaxhighlight lang="lua">
local tekst2="https://pl.wikibooks.org/wiki/Strona główna###To_nie_jest nagłówek?action=edit§ion=2#Nagłówek strony";
</syntaxhighlight>
== {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} ==
Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|adres}} - adres do zakodowania,
* {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Adres protokonalny;
local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit§ion=2#Nagłówek strony";
local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true);
-- Adres bezprotokonalny;
local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit§ion=2#Nagłówek strony";
local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false);
</syntaxhighlight>
Wynik wartości {{Code|adres12}} i {{Code|adres12}}:
<syntaxhighlight lang="lua">
-- Zakodowany adres z protokołem
local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit§ion=2#Nag%C5%82%C3%B3wek%20strony";
-- Zakodowany adres bez protokołu
local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit§ion=2#Nag%C5%82%C3%B3wek%20strony";
</syntaxhighlight>
== {{Code|p.UriEncode}} ==
Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}.
Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UriEncode(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki tablicy transportu:
* {{Code|html}} - adres z protokołem strony.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
-- Adres protokonalny;
local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit§ion=2#Nagłówek strony";
-- Równoważnie: local adres2=html_modul.UriEncode{html=adres,};
local adres2=html_modul.UriEncode(adres);
</syntaxhighlight>
Wynik jest w zmiennej:
<syntaxhighlight lang="lua">
local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit§ion=2#Nag%C5%82%C3%B3wek%20strony";
</syntaxhighlight>
== {{Code|p.EncodePodstawoweHtmlTekstu}} ==
Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|#}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?";
local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres);
</syntaxhighlight>
Wartość zmiennej jest ukryta pod:
<syntaxhighlight lang="lua">
local adres2="Szablon:Link_wewnętrzny?action=edit#Obsługa?";
</syntaxhighlight>
== {{Code|p.EncodeElementyAdresuStrony}} ==
Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|elementy_adresu_strony}} - element adresu strony,
* {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry,
* {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local elementy_adresu_strony="Obsługa?";
local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true);
</syntaxhighlight>
Wartość zmiennej jest ukryta pod:
<syntaxhighlight lang="lua">
local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B";
</syntaxhighlight>
== {{Code|p.AdresProjektuEncodeHtml}} ==
Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|z_kodowaniem}} - czy końcowo kodować,
* {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron.
Parametry tablicy ramki tabeli transportu:
* {{Code|html}} - adres do kodowania,
* {{Code|encode}} - czy kodować.
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit§ion=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony";
local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true);
local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true);
</syntaxhighlight>
Wartość zmiennej jest ukryta pod:
<syntaxhighlight lang="lua">
local adres2="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit§ion=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony";
local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit§ion=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony";
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0f7ku6mukzmy26jadiz7zqch43x37cv
Wikibooks:Moduły/StronicowyParser
4
63511
551359
548825
2026-08-11T13:40:25Z
Persino
2851
/* Spis treści */
551359
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom I|Rozdziały - Tom I}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom II|Rozdziały - Tom II}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom III|Rozdziały - Tom III}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom IV|Rozdziały - Tom IV}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom V|Rozdziały - Tom V}}
* {{lru|Moduły/StronicowyParser/SpisTreści}} - spis treści dla jego podmodułów,
** {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}} - funkcje do ładowania pojedynczego spisu treści,
** {{lr|Moduły/StronicowyParser/SpisTreści/Tom II|SpisTreści - Tom II}} - funkcje do ładowania jego, wielu, a nawet przygotowania dodatkowych elementów spisów, a mianowicie dalszych artykułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dyih8nkkip5h2w5vvjswpmyzbj6lyxw
551474
551359
2026-08-11T18:17:51Z
Persino
2851
/* Spis treści */
551474
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom I|Rozdziały - Tom I}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom II|Rozdziały - Tom II}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom III|Rozdziały - Tom III}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom IV|Rozdziały - Tom IV}}
** {{lr|Moduły/StronicowyParser/Rozdziały/Tom V|Rozdziały - Tom V}}
* {{lru|Moduły/StronicowyParser/SpisTreści}} - spis treści dla jego podmodułów,
** {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}} - funkcje do ładowania pojedynczego spisu treści,
** {{lr|Moduły/StronicowyParser/SpisTreści/Tom II|SpisTreści - Tom II}} - funkcje do ładowania jego, wielu, a nawet przygotowania dodatkowych elementów spisów, a mianowicie dalszych artykułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
** {{lr|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I|ZbieranieDanychStron - Tom I}}
** {{lr|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II|ZbieranieDanychStron - Tom II}}
** {{lr|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III|ZbieranieDanychStron - Tom III}}
** {{lr|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV|ZbieranieDanychStron - Tom IV}}
** {{lr|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V|ZbieranieDanychStron - Tom V}}
** {{lr|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V|ZbieranieDanychStron - Tom VI}}
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9c9dd9sjmb49iat5xpbf8bpm8up8rwz
551475
551474
2026-08-11T18:19:27Z
Persino
2851
/* Spis treści */
551475
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} - spis treści dla jego podmodułów,
** {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}} - funkcje do ładowania pojedynczego spisu treści,
** {{lr|Moduły/StronicowyParser/SpisTreści/Tom II|SpisTreści - Tom II}} - funkcje do ładowania jego, wielu, a nawet przygotowania dodatkowych elementów spisów, a mianowicie dalszych artykułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
joeq5eo0z09239tznnr8j4agooh5pf8
551476
551475
2026-08-11T18:19:46Z
Persino
2851
/* Spis treści */
551476
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9svpsxq34citd71fp58rajllzm54qts
551478
551476
2026-08-11T18:23:49Z
Persino
2851
/* Spis treści */
551478
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} (spis treści) - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} (spis treści) - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} (spis treści) - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
a6onzpg56dlp7byykaal8h2j75uvic8
551479
551478
2026-08-11T18:24:31Z
Persino
2851
/* Spis treści */
551479
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} ('''spis treści''') - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} ('''spis treści''') - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} ('''spis treści''') - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pelulxk98zru6899fqa61nn6fpumt79
551482
551479
2026-08-11T18:38:06Z
Persino
2851
/* Spis treści */
551482
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lru|Moduły/StronicowyParser/Moduł główny|StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} ('''spis treści''') - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} ('''spis treści''') - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} ('''spis treści''') - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
62sw76qii4pupcghtg7q4z17425o4eb
551483
551482
2026-08-11T18:38:35Z
Persino
2851
/* Spis treści */
551483
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lr|Moduły/StronicowyParser/Moduł główny|StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} ('''spis treści''') - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} ('''spis treści''') - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} ('''spis treści''') - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gnprj5bbptg43e0fuo7tka5ygthhv9x
551485
551483
2026-08-11T18:49:14Z
Persino
2851
/* Spis treści */
551485
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lr|Moduły/StronicowyParser/Moduł główny|StronicowyParser}} - procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} ('''spis treści''') - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} ('''spis treści''') - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} ('''spis treści''') - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
a5yybvhasy2iypbn52l6f4up91vty39
551521
551485
2026-08-12T01:22:11Z
Persino
2851
/* Spis treści */
551521
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji.
== Spis treści ==
* {{lr|Moduły/StronicowyParser/Moduł główny|StronicowyParser}} - procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}},
* {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - funkcje do wydzielania z wikikodu strony rozdziału danego spisu jego głównej części, ktorym jest właściwy spis treści strony, tym spisem treści nie muszą być rozdziały i artykuły w rozdziale: '''Spis treści''', czy: '''SPIS RZECZY''', wraz z tym nim,
* {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - zawiera funkcje do analizy spisów i całej strony z drugiej strony, jak i tworzenia tablicy nagłówków, z ich identyfikatorami '''id''',
* {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}},
* {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie,
* {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów,
* {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - funkcja odpowiednio ustawia dane, jaka jest numeracja, jeśli w ogóle istnieje, danego typu obiektu, sprawdza, czy uchwyt obiektu się powtarza, przy numeracji uwzględniany jest numer artykułu.
* {{lru|Moduły/StronicowyParser/Potrzebne}} -
* {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy,
* {{lru|Moduły/StronicowyParser/Rozdziały}} ('''spis treści''') - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}},
* {{lru|Moduły/StronicowyParser/SpisTreści}} ('''spis treści''') - spis treści dla jego podmodułów,
* {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}}
* {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego w sposób rekurencyjny,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} ('''spis treści''') - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich,
* {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej),
* {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią,
* {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c6d6ts78cwdnhib5i3g8xuyd85g5q87
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I
4
63512
551552
548368
2026-08-12T05:24:29Z
Persino
2851
/* {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} */
551552
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}.
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukujeodpowiedni napis wprowadzenia tekstu.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5csajg9p0ja3whtzzfga56otxftp79w
551553
551552
2026-08-12T05:25:16Z
Persino
2851
/* {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} */
551553
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}.
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukujeodpowiedni napis wprowadzenia tekstu.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4revvlg3ksve0f9htlkze02z94vqday
551554
551553
2026-08-12T05:27:12Z
Persino
2851
/* {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} */
551554
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qcse6p49p58fwldbvekakamub1e6644
551555
551554
2026-08-12T05:49:01Z
Persino
2851
551555
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''',czy: '''Spis rzeczy''', okreslone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
48hjs5p0k39n2gsa48ofpqht8fyyphh
551556
551555
2026-08-12T05:50:02Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy]] do [[Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I]], bez pozostawienia przekierowania pod starym tytułem
551555
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''',czy: '''Spis rzeczy''', okreslone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
48hjs5p0k39n2gsa48ofpqht8fyyphh
551558
551556
2026-08-12T05:52:12Z
Persino
2851
551558
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''',czy: '''Spis rzeczy''', okreslone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gccp154mj5gqpj6ma68xlzrpf5t5v83
551559
551558
2026-08-12T05:52:50Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} */
551559
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', okreslone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9g7fsj7tbgx1u1a17lssha9qyhfnf8z
551560
551559
2026-08-12T05:53:13Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} */
551560
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fk17inmxhvvkvxmzifdrxalbmefxl2r
551561
551560
2026-08-12T06:05:59Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551561
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon centrowania, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, znacznik według: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Jeżeli znaleziony szablon, czy zmacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jfmr9cdijo52a0x28dsusp8c4wdiq6n
551562
551561
2026-08-12T06:07:15Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551562
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon centrowania, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, znacznik według: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cllsojv0tmhhxl7cjibje271dsak92p
551563
551562
2026-08-12T06:09:56Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551563
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon centrowania, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, znacznik według: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do wyszukiwania szablonów centrowania używa, do tego celu {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9brvcp5b1b2j2rnu6va24hzhszj01jd
551564
551563
2026-08-12T06:18:51Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} */
551564
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{Code|>}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon centrowania, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, znacznik według: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do wyszukiwania szablonów centrowania używa, do tego celu {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cn7vegn8mkt1vx6j4a21a81d1xcx4z8
551565
551564
2026-08-12T06:20:17Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} */
551565
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|>}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon centrowania, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, znacznik według: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do wyszukiwania szablonów centrowania używa, do tego celu {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4mak7828ym8wy8jvr5ircw7ysoljlog
551566
551565
2026-08-12T10:40:27Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551566
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|>}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon centrowania, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, znacznik według: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do wyszukiwania szablonów centrowania używa, do tego celu {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dti5eu882w02x1phuk89d2se32kgjmy
551567
551566
2026-08-12T10:43:47Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551567
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|>}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do wyszukiwania szablonów centrowania używa, do tego celu {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fvpvlfbitunrt3syx7kvi5degl9xdtx
551568
551567
2026-08-12T10:46:05Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551568
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|>}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|elna_nazwa_spisu_tresci_szablonowa}} {{Patrz|elna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o nazwach ich będących kluczami z nimi {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7pj8g181gyyxmfhejf28ybdhmdmehek
551569
551568
2026-08-12T10:51:22Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551569
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|>}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o nazwach ich będących kluczami z nimi {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
78c7kev3lg32694jzi79j5tagdrac4j
551570
551569
2026-08-12T10:53:07Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
551570
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu, tzn. {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|>}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pm8uvs80pt0316p64tfv08h9tes1ujk
551572
551570
2026-08-12T11:13:54Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} */
551572
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o9iiklhx07w91kkjkipo5joi24swadu
551573
551572
2026-08-12T11:14:23Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} */
551573
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
e2dbkocaozq6nunlfe26e7y50mbq8l0
551574
551573
2026-08-12T11:20:21Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} */
551574
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania treści od {{LinkPatrz|liczba_od}} do {{LinkPatrz|liczba_do}}, do tyłu, jak ido przodu,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|Liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
85xrhtkyb9bov3ifx7lmmnm6nt35uhy
551575
551574
2026-08-12T11:32:47Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} */
551575
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia}} i tabel baz, tzn.: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, z przetworzonymi danymi z: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Zmienna: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania treści od {{LinkPatrz|liczba_od}} do {{LinkPatrz|liczba_do}}, do tyłu, jak ido przodu,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|Liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
93hee0wn0rc0g1btg2h24uhrm0xbu9x
551576
551575
2026-08-12T11:33:50Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} */
551576
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia}} i tabel baz, tzn.: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, z przetworzonymi danymi z: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Zmienna: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania treści od {{LinkPatrz|liczba_od}} do {{LinkPatrz|liczba_do}}, do tyłu, jak ido przodu,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
atgb2a286eoqcz9ehpv9yo9uu6t0t8e
551577
551576
2026-08-12T11:35:02Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} */
551577
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia}} i tabel baz, tzn.: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, z przetworzonymi danymi z: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Zmienna: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania treści od {{LinkPatrz|liczba_od}} do {{LinkPatrz|liczba_do}}, do tyłu, jak i do przodu, w zależności od wyboru w zmiennej {{LinkPatrz|jak}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4g9mql4gr949op2uh0c13iemxfbfw1u
551578
551577
2026-08-12T11:37:44Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} */
551578
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii z nagłówkiem: '''Spis treści''', czy '''Spis rzeczy'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}. Na początku nowej linii nie mogą byc odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Szablon szuka od tyłu lub do przodu, w zależności jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
Funkcja po wyszukaniu kolejnej linii, aż do zakończenia jej zasobów, usuwa znakispecjalne bez: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}. On jak znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* {{Code|szablon}} {{Patrz|szablon}} - sprawdzany szablon, czy znacznik,
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu {{LinkPatrz|obiekt}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - taabela bazy danych zakodowanego tekstu,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* {{Code|pelna_nazwa_spisu_tresci_szablonowapelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - nazwa spisu w wersji szablonowej.
Funkcja do sprawdzania, w tym przypadku szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Wybiera stąd wyszukiwania, które nie są rozdziałami dodatnimi równaniowymi i ujemnymi będących pozycjami listy. Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia}} i tabel baz, tzn.: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, z przetworzonymi danymi z: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Zmienna: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania treści od {{LinkPatrz|liczba_od}} do {{LinkPatrz|liczba_do}}, do tyłu, jak i do przodu, w zależności od wyboru w zmiennej {{LinkPatrz|jak}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gv1vsm2nls3jo0fhto69sikemlm4irv
Wikibooks:Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron
4
63513
551536
551174
2026-08-12T03:24:28Z
Persino
2851
551536
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony}}{{Code|p.PobieranieInformacjiRamkiRozpatrywanejStrony}} ==
Pobieranie danych z obiektu {{LinkPatrz|self}}, biorąc jego podtablicę o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobieranieInformacjiRamkiRozpatrywanejStrony(self)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa ramki tablicy transportu.
== {{Śródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi}}{{Code|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi}} ==
Funkcja uruchamiacz, główna funkcja dzięki, której ładują się informacje według modułu: {{Code|{{ld2|StronicowyParser/informacje}}}} (tam jest użyty). Ten ładowacz jest pokazany w module opis: {{Code|{{lr2|Moduły/StronicowyParser/informacje}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}}.
=== {{Śródtytuł|DaneNazw}}{{Code|DaneNazw}} ===
Funkcja licząca nazwy podanej nazwy strony, tzn.: {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}}, oraz zwracające te kolejno nazwy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function DaneNazw(pelna_nazwa_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|pelna_nazwa_strony}} {{Patrz|pelna_nazwa_strony}} - pełna nazwa strony.
=== Dalsza część funkcji - Tom I ===
==== Tworzenie i inicjowanie początkowych tabel ====
Funkcja tworzy podtabele tabeli zmiennej obiektowej {{LinkPatrz|self}} o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o wartości pustej. Następnie są tworzone podtabele puste w tej ostatniej o kluczach: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}} i {{Code|licencja}}{{Patrz|licencja}}, oraz nilowe zmienne z tego samego, co ostatnie, o kluczu: {{Code|problemy}} {{Patrz|problemy}}.
==== Zmienne nazw strony bieżącej, czy nawet aktualnej, w zależności, czy istnieją odpowiednie ustawienia ====
Jest liczony adres strony, na której jest uruchomiona dana strona, wewnętrznej bezparametrowo według: {{Code|{{sr|#p["PełnaNazwaArtykułu"]|p=Książkowe}}}} {{Patrz|strona_aktualna}} (jest liczona pełna nazwa strony bieżącej), co z tego są liczone z niego: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, co z tego jest wyznaczana pełna nazwa książki {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Zbieranie danych ustawień z: {{Code|.../config}}, jeśli istnieją ====
Jest liczony pełny adres ustawień: {{Code|pelna_nazwa_ksiazki_ustawienia}} {{Patrz|pelna_nazwa_ksiazki_ustawienia}}, według schematu: {{Code|"Szablon:Podręcznik/Ustawienia/"..pelna_nazwa_ksiazki}} {{Patrz|UstawieniaKsiążki}}. Co z tego jest sprawdzane, czy istnieje strona: {{Code|pelna_nazwa_ksiazki_ustawienia.."/config"}} {{Patrz|config}}, a jeśli tak, to wtedy wiemy, że to jest szablon, to go przedstawiamy w postaci szablonowej, licząc z: {{Code|{{sr|#p.NazwaSzablonu|p=Szablonowe}}}}. Dalej jest liczony ostatni wyliczony szablon z parametrem {{Code|książka}} {{Patrz|książka}}, dalej jeszcze raz, tym razem z parametrem: {{Code|artykuł}} {{Patrz|artykuł}} - te parametry przedstawiają parametry artykułu książkowego, skąd możemy ściągać stronę, by ją wyświetlić na stronie aktualnej, na pewno parametr {{LinkPatrz|książka}} nie może być parametrem składających z samych znaków odstępów, a jeśli tak jest, w takim razie z tych dwóch parametrów jest liczony parametr {{Code|strona}} {{Patrz|strona}}. Dalej liczymy, czy ona jest poprawnym adresem, używając funkcji: {{Code|{{sr|#p["CzyNiepoprawnaNazwa"]|p=Pudełko/Tom I}}}}. A jeżeli adres jest jednak poprawny, ta funkcja zwraca wartość odpowiadającej fałszywej wartości, wtedy jest liczony pełny adres strony z: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jeżeli ona jest adresem względnym, ale nie musi być, z parametrów, tzn. parametr pierwszy: {{LinkPatrz|strona}} (możliwie względny), i parametr drugi: {{LinkPatrz|strona_aktualna}} (zawsze jest adresem bezwzględnym), co względem tej funkcji mamy już: {{LinkPatrz|strona}}, czyli po tej operacji (procedurze) policzyliśmy bezwzględny jego adres.
===== Liczenie nazw z parametru pełnej nazwy aktualnej, nie bieżącej, strony wynikłe z obliczeń z ustawień =====
Policzona wartość strony: {{LinkPatrz|strona}}, jest sprawdzana, czy adres (strona), pod którym ona się kryje, istnieje, wykorzystując do tego funkcji: {{Code|{{sr|#p.PoliczZbiory|p=Techniczne}}}}, a jeśli tak, to ten adres jest tylko formatowany. Porównujemy adres {{LinkPatrz|strona}} z {{LinkPatrz|strona_aktualna}}, czy przedstawiają nie ten sam adres, a jeżeli tak, to liczymy wszyskie nazwy strony, czyli dla bez {{Code|aktualna_}}, przyrównujemy do tego z tym początkiem, co odpowiada pełnej nazwie strony z {{Code|strona_aktualna}} {{LinkPatrz|strona_aktualna}} {{ZobaczTeż|strona_aktualna}}, i wyznaczamy nazwy strony bez tego początku, używając funkcji: {{LinkŚródtytuł|DaneNazw}}, ze zmiennej: {{Code|strona}} {{LinkPatrz|strona}} {{ZobaczTeż|strona}}. Te ostatnie nazwy są potrzebne do analizy strony bieżącej, nie aktualnej, tzn. na niej, jakie są szablony, jakie posiada spisy, jakie książki, a w nim spisy do nich, są dołączone.
====== Policzone nazwy strony aktualnej wpisane do ogólnej tablicy ======
A póżniej z adresów pliczonych wywołania, dotyczącej tego aktualnego, liczymy dla podtabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, zmienne o kluczach: {{Code|aktualna_nazwa_przestrzeni}} {{Patrz|aktualna_nazwa_przestrzeni}}, {{Code|aktualna_nazwa_przestrzeni_ksiazki}} {{Patrz|aktualna_nazwa_przestrzeni_ksiazki}}, {{Code|aktualna_nazwa_ksiazki}} {{Patrz|aktualna_nazwa_ksiazki}} i {{Code|aktualna_nazwa_artykulu}} {{Patrz|aktualna_nazwa_artykulu}}, mając zmienne nazw policzone z tego aktualnego.
===== Czy strona bieżąca, ale nie zbiorcza, jest wyświetlana na stronie aktualnej, czy może jest tylko stroną zbiorczą uruchomioną pod inną nazwą =====
Jeśli zmienne nazw są policzone z: {{LinkZobaczTeż|strona}} i {{LinkZobaczTeż|strona_aktualna}}, to wtedy kolejno porównujemy, czy któreś z nich są sobie nierówne, a jeśli tak, to wywołujemy szablon z parametru: {{Code|zastępcza}} {{ZobaczTeż|zastępcza}} - jest to, czy strona jest zbiorcza, o nazwie: {{LinkPatrz|config}}, czy powinna być wartością niepustą. A jak tak, to wyznaczamy z tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, zmienną o kluczu: {{Code|alternatywna}} {{Patrz|alternatywna}}, co przyrównujemy jemu wartość logiczną z uzyskanego z szablonu z parametrem {{LinkZobaczTeż|zastępcza}}, a jeżeli ta zmienna przyjmuje wartość odpowiadająca fałszywej, wtedy zmienna z tej samej tablicy o kluczu: {{Code|inna_strona_aktualna_niz_biezaca}} {{Patrz|inna_strona_aktualna_niz_biezaca}} - jest to, czy strona jest inna niż zbiorcza, ale wyświetlana na innej stronie, przyjmuje wartość prawdziwą.
=== Dalsza część funkcji - Tom II ===
Tworzymy zmienną: {{Code|tablica_zmiennych}}, która jest tablicą pustą, którą uzupełniamy o elementy o kluczach: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}} - są to dane zebrane z bieżącej strony, i {{Code|linkobiekt}} {{Patrz|linkobiekt}} - są to dane zebrane o linkach na stronie odpowiadających poszczególnym obiektom.
Uruchamiamy funkcję: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}, z której wyznaczamy parametr: {{Code|tabela_listy_danych_analizy_ksiazki}} - są to dane zebrane z bieżącej i innych stron skojarzonej z nim, te elementy są tylko w postaci nieprzetworzonej, ale przygotowanej. A jeśli ten parametr jest tabelką - a jeżeli nie jest, to nastąpił błąd przetwarzania, i funkcja nie idzie dalej w instrukcję warunkową, wtedy wywołujemy funkcję: {{Code|{{sr|#p.PrzetwarzanieZebranychInformacjiDanejKorzystanejStrony|p=StronicowyParser/NumeracjaObiektówStron}}}}.
=== Dalsza część funkcji - Tom III ===
Na sam koniec funkcji zwracamy tablicę: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} - ta zmienna zawiera dane w postaci przetworzonej policzonej, tzn. uchwytom są przydzielone numeracje, sprawdzane, czy uchwyty są policzone, są wyznaczone wszystkie kody problemów, które później są potrzebne do wyznaczania wszystkich kategorii błędów na stronie.
== {{Śródtytuł|p.SpisRzeczyWedlePodanegoTekstu}}{{Code|p.SpisRzeczyWedlePodanegoTekstu}} ==
Funkcja generowania liczenia nagłówków strony, co na tej podstawie może być generowany '''spis treści''' strony. Funkcja przyporządkowuje uchwytom szablonów nagłówków ich identyfikatory i te nagłówki, w którym one leżą, jeżeli zmienna {{LinkPatrz|obiekty}} istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpisRzeczyWedlePodanegoTekstu(self,tekst_artykulu,nazwa_strony,czy_artykul_korzystany, tylko_naglowek,obiekty,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,KtorySzablonMaZwracacKategorie,wzory_zamiast_kodow,tabela_elementow_strony_kodow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tekst_artykulu}} {{Patrz|tekst_artykulu}} - tekst przetworzony, przygotowany ewentualnie przez pewną funkcję, rozważanego artykułu,
* {{Code|nazwa_strony}} {{Patrz|nazwa_strony}} - nazwa strony, danego spisu,
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy strona jest bieżąca,
* {{Code|tylko_naglowek}} {{Patrz|tylko_naglowek}} - pisz adresy stron z tylko nagłówkami '''#''', bez adresów stron,
* {{Code|obiekty}} {{Patrz|obiekty}} - elementy tam zebrane, są wykorzystywane do analizy nagłówków poprzez szablon {{s|Śródtytuł}}, któremu temu nagłówkowi odpowjada pewien uchwyt, czy uchwyty,
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa aktualna, czy bieżąca strony,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tabela bazy zebranych informacji w postaci zakodowanej modułu {{m|Szablonowe}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tabela przeanalizowanych elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_obiektow_strony_danych_kodow_specjalnych_modul}} {{Patrz|tablica_obiektow_strony_danych_kodow_specjalnych_modul}} - tablica dwuwymiarowa kodów o kluczach: szablonów referencji: '''REF...''' i '''POSTMATH''' oraz ich elementu numeru kodu {{Code|kod}}, którego elementem jest kod tego elementu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tabela składająca się z trzech elementów, którego pierwszy element to: {{Code|KtorySzablonMaZwracacKategorieNaglowek}} {{Patrz|KtorySzablonMaZwracacKategorieNaglowek}} - funkcja dla szablonów problemów dla jak: {{s|Śródtytuł}}, w nagłówku, drugi: {{Code|KtorySzablonMaZwracacKategorieTekst}} {{Patrz|KtorySzablonMaZwracacKategorieTekst}} - funkcja dla tego typu szablonów, ale dla nich w tekście, nie w nagłówku, trzeci: {{Code|CzyJestTakiProblemJakoElementTablicy}} {{Patrz|CzyJestTakiProblemJakoElementTablicy}} - czy nie rozważać, dla rozdziałów zerowych, przeciwnie: ta funkcja może przyjmować wartość {{Code|nil}}, wartość zwracana tego elementu, bo to jest funkcja, zależy, czy jest ustawiony kod problemu: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}}, a jeżeli jest taki, to ta funkcja przyjmuje zrzuconą wartość {{Code|true}},
* {{Code|wzory_zamiast_kodow}} {{Patrz|wzory_zamiast_kodow}} - rozważaj wzory według tablicy: {{LinkPatrz|tablica_obiektow_strony_danych_kodow_specjalnych_modul}}, lub koduj to według funkcji: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}} - to wykorzystuj w przypadku, gdy: {{LinkPatrz|nazwa_strony}}, istnieje, i jest wartością pustą, lub {{Code|{{sr|#p.NormaKoduZakodowanegoWikiTekstu|p=Szablonowe}}}} - przeciwnie,
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - baza tabela z zapamiętanymi podtabelami, którego poszczególne elementy wykorzystywane w spisie posiadają w sobie tylko pierwszy element w postaci przetworzonego uchwytu, bo używamy tylko uchwytów szablonów nagłówków.
=== {{Śródtytuł|SpecjalneWprowadzeniaTekstu}}{{Code|SpecjalneWprowadzeniaTekstu}} ===
Funkcja zamieniające pewne szablony, czy znaczniki, na rozdziały równaniowe.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local SpecjalneWprowadzeniaTekstu=function(szablon,obiekt,kod,czy_szablon,czy_znacznik,czy_liczyc,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} {{Patrz|szablon}} - zmienna (szablon), nie musi być to normalny szablon,
* {{Code|obiekt}} {{Patrz|obiekt}} - zmienna, którego typu jest obiekt,
* {{Code|kod}} {{Patrz|kod}} - numer obiektu typu {{LinkPatrz|obiekt}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy to jest szablon,
* {{Code|czy_znacznik}} {{Patrz|czy_znacznik}} - czy to jest znacznik,
* {{Code|czy_liczyc}} {{Patrz|czy_liczyc}} - czy funkcję liczyć w sposób złożony, szablony typu: {{s|SpisTreści}} - zamieniający go na znacznik, czy prosty, co na samym końcu uruchamiana jest funkcja: {{LinkPatrz|funkcja1}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} - funkcja operująca na wygenerowanym pośrednio (dłuższe liczenie) lub bezpośrednio (krótsze) znaczniku, wychodząca z szablonu, i zamieniająca go na rozdział równaniowy, funkcja operująca dla szablonów: {{s|SpisTreści}} lub {{s|HNumer}},
* {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja operująca na znaczniku '''HTML''' nagłówka - typu jak: {{Tag|h1}}, i zamieniająca go na rozdział równaniowy.
==== {{Śródtytuł|ParametrNR}}{{Code|ParametrNR}} ====
Funkcja liczy dokładnie parametr dany o danym numerze, zbiór danych parametrów oznaczających to samo może być wiele, tylko że jedne mogą być ważniejsze od drugich.
Definicja skrótowa funkcja:
<syntaxhighlight lang="lua">
local function ParametrNR(numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|numer}} {{Patrz|numer}} - numer parametru.
Funkcja wykorzystywuje funkcję do uruchomienia: {{Code|{{sr|#p.SpisRzeczySzablon|p=StronicowyParser/Potrzebne}}}}, do generowania parametrów, a właściwie ich wartości.
==== {{Śródtytuł|ObiektKodNumer}}{{Code|ObiektKodNumer}} ====
Funkcja dodająca do bazy danych kolejny element bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, dla danego obiektu element na samym końcu, po maksymalnym elemencie do niego. Funkcja liczy kod przy pomocy funkcji: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local ObiektKodNumer=function(szablon,obiekt)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}.
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}}.
==== Dalszy opis funkcji ====
Dla {{LinkPatrz|czy_szablon}} prawdziwego dla szablonów sztucznego spisu treści, sprawdzanego przez tabelkę: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, dla danego szablonowego rozdziału generowanego według {{s|HNumer}}, jest on zamieniany na rozdział równaniowy poprzez funkcję: {{LinkPatrz|funkcja1}}.
Ta tabela przedstawia się treścią:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Dla innych rozdziałów szablonowych, tym razem generowanego przez szablon {{s|SpisTreści}}, którego parametry są wyznaczane przez funkcję: {{LinkŚródtytuł|ParametrNR}}, tabelka parametrów opisująca to:
<syntaxhighlight lang="lua">
p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu={
["SpisTreści"]={{"artykuł",1,},{"książka",2,},{"nazwa",3,},{"dodatek",4,},{"poziom",},},
};
</syntaxhighlight>
Funkcja liczy artykuł, koloruje do niego link w: '''spisie treści''', na czerwona, wtedy generuje dodatkowy znacznik, z właściwością: {{Code|color:red}}, gdy on nie istnieje, i to wstawia do tabeli bazy, lub bez niego, wtedy bezposrednio generuje tekst równy nazwie tego szablonu, opakowany, lub nie, w zależności od istnienia. Do policzenia strony, czy ona istnieje, musi być przedtem zdekodowany funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, by później policzyć to sprawdzenie przy pomocy: {{Code|{{sr|#p.PoliczZbiory|p=Techniczne}}}}.
W każdym bądź razie jest ruchumianiana funkcja: {{LinkPatrz|funkcja1}}.
Gdy to nie jest szablon, tzn.: {{LinkPatrz|czy_szablon}}, jest fałszywe, ale {{LinkPatrz|czy_znacznik}} jest prawdziwe, to takie znaczniki, jak od: {{Tag|h1}} do {{Tag|h6}}, są zamieniane na czysty tekst.
W takim razie wywoływana jest dla tego przypadku funkcja: {{LinkPatrz|funkcja2}}.
Funkcja: {{LinkPatrz|funkcja1}}, jest dla szablonów nagłówków, a: {{LinkPatrz|funkcja2}}, dla znaczników nagłówków.
Z tych generowanych czystych generowanych tekstów są tworzone w tekście rozdziały równaniowe, by później wygenerować '''spis treści''', właśnie z nimi - z tymi nagłówkami, a bardziej ściśle linkami do nich.
=== {{Śródtytuł|SzablonNaglowkujWNaglowkuRozdzialu}}{{Code|SzablonNaglowkujWNaglowkuRozdzialu}} ===
Fukcja do obsługi nagłówków {{LinkPatrz|Śródtytuł}} w nagłówku, nie w tekście poza nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,parametry_wywolania_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|powtorka}} {{Patrz|powtorka}} - numer użycia takiego samego szablonu typu {{s|Śródtytuł}} {{Patrz|Śródtytuł}},
* {{Code|parametry_wywolania_szablonu}} {{Patrz|parametry_wywolania_szablonu}} - parametry szablonu wraz z ich wartościami,
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa szablonu wywołania,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - modyfikatory szablonu.
Funkcja sprawdza, czy szablon w nagłówku jest typu {{LinkPatrz|Śródtytuł}}, a jeżeli tak, to liczy jego uchwyt, najpierw wyznacza je z parametru o nazwie {{Code|uchwyt}} {{Patrz|uchwyt}}, dalej sprawdzane jest, czy taki uchwyt tak zdefiniowany istnieje, jeśli tak, to wydobywana jest jego przetworzona tabela z tym właśnie uchwytek, funkcja robi to względem numeru {{Code|kod}} {{LinkPatrz|kod}} tego szablonu na podstawie funkcji: {{Code|{{sr|#p.WydobywanieUchwytuZeiBezNumeracji|p=StronicowyParser/ZbieranieDanychStron}}}}. Jeżeli wydobyta tabela {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} nie istnieje, w takim razie jest ona dekodowana funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a później jest traktowana jako adres '''URL''', tzn. jest dekodowana funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, dalej jest tworzona tabela pusta: {{LinkPatrz|lista_dwuelementowa}}, co dalej jest tam wstawiana do niej jako pierwszy element uzyskany uchwyt przetworzony. A jeśli jednak {{LinkPatrz|lista_dwuelementowa}} została wydobyta z naszej funkcji tabela, która istnieje, wtedy funkcja idzie, niż poprzednio, w inny krok instrukcji warunkowej, wtedy z tej tabeli jest wydobywany pierwszy element jako przetworzony wcześniej uchwyt.
Gdy {{ZobaczTeż|uchwyt}} przetworzony uchwyt jest łańcuchem znaków niepusty, wtedy on jest dodawany w postaci tabeli, w której jest ten uchwyt, na sam koniec tabeli {{Code|numeracja}} {{Patrz|numeracja}}. Gdy liczba powtórzeń jest większa niż zero, wtedy jest wywoływana funkcja, przy którym mają być zwrócone kategorie, jeśli zostaną użyte, o nazwie {{LinkPatrz|KtorySzablonMaZwracacKategorieNaglowek}}.
Gdy jednak uchwyt uzyskany nie istnieje, to wtedy jest to samo robione, co w: {{LinkZobaczTeż|uchwyt}}.
Przed zwróceniem ile razy została dokonana powtórka, jest powiększany licznik powtorek, i to jest otrzymywane z tej funkcji.
=== {{Śródtytuł|SzablonNaglowkujWTekscieRozdzialu}}{{Code|SzablonNaglowkujWTekscieRozdzialu}} ===
Funkcja do analizy szablonów nagłówków w tekście rozdziału, nie w nagłówku.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja sprawdza, czy tekst w bazie kodów jest typu: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, w takim razie po wykryciu, że dla tego, że jest to wywołanie szablonowe, a nie instrukcja warukowa w wikikodzie w tekście, wtedy podobnie jest robione, co w funkcji: {{LinkŚródtytuł|SzablonNaglowkujWNaglowkuRozdzialu}}, tylko zamiast {{Code|KtorySzablonMaZwracacKategorieNaglowek}} {{LinkPatrz|KtorySzablonMaZwracacKategorieNaglowek}} jest {{Code|KtorySzablonMaZwracacKategorieTekst}} {{LinkPatrz|KtorySzablonMaZwracacKategorieTekst}}.
Przy wykryciu tam szablonu typu {{LinkPatrz|Śródtytuł}}, funkcja zawsze zwraca wartość {{Code|true}}, w innych przypadkach {{Code|false}}. W przypadku intrukcji warunkowej w wikikodzie i dla ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest wtedy zwracana wartość {{Code|false}}.
Funkcja w pozostałych przypadkach zwraca wartość logiczną {{Code|false}}.
=== {{Śródtytuł|SzablonyWywolywane}}{{Code|SzablonyWywolywane}} ===
Szablon zamieniający specjalne znaki szablonów, tzn.: {{Code|{{((}}}}, {{Code|{{))}}}}, {{Code|{{!}}}} i {{Code|{{=}}}}, kolejno na: {{Code|{{s|((}}}}, {{Code|{{s|))}}}}, {{Code|{{s|!}}}} i {{Code|{{s|{{=}}}}}}, takich {{ZobaczTeż|StronicowyParser}}, które zawierają wywołania '''Stronicowego Parsera''', czyli ramki typu: {{Code|{{m|StronicowyParser}}}}, czy: {{Code|{{m|StronicowyParser/}}}}, a inne są po prostu przypisywane. W przypadku linków, i nie tylko, tzn. dla szablonów {{LinkZobaczTeż|StronicowyParser}}, z innych stron niż korzystana, co jest trafnie oznaczone zaprzeczeniem parametru {{LinkPatrz|czy_artykul_korzystany}} są liczone parametry pudełkowe {{Code|{{m|Pudełko}}}}. Strony wskazane przez te parametry są analizowane, przy czym linki są przez inną funkcję, a inne już przez znów inną. Szablony nagłówków typu {{LinkPatrz|Śródtytuł}}, czy szablonów stronicowych otwierających i zamykających, one lub jego koledzy, tzn. ich: {{s|StronaStart}} i {{s|StronaKoniec}}, są zastępowane ciągiem pustym. Inne parametry opisane z tabeli {{Code|{{sr|#p.szablony_stronicowe_kontenerowe_formatowania_wzorowego|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowe_kontenerowe_formatowania_wzorowego}}, są zastępowane ich zawartością, by uniknąć kontaktu nagłówków z tego typu szablonami. Szablony ideksowania określone tabelą: {{Code|{{sr|#p.szablony_indeksowania}}}} {{Patrz|p.szablony_indeksowania}}, nie są rozwijana z kodowania lub są, w zależności, czy zmienna: {{Code|czy_indeksowanie}} {{Patrz|czy_indeksowanie}}, ma wartość {{Code|true}} - tutaj są, czy odpowiadającej fałszywej wartości logicznej - a tutaj już nie. W przypadku instrukcji warunkowych, czy ramek {{lpg|Lua}} w {{lpg|Lua|Scribunto}}, one są rozwijane - kod tego jest zawartością {{LinkPatrz|szablon}}. W innych przypadkach funkcja zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonyWywolywane(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
W powyższym opisie występują szablony opisane w: {{LinkPatrz|p.szablony_stronicowe_kontenerowe_formatowania_wzorowego}}, a jej definicja jest:
<syntaxhighlight lang="lua">
p.szablony_stronicowe_kontenerowe_formatowania_wzorowego={
["Formuła"]=1;
};
</syntaxhighlight>
Jest to szablon: {{s|Formuła}} i podobne, liniowe wstawiane do tekstu, ta tabela ma za zadanie zastąpić te szablony ich poszczególnym zawartościom, a ta funkcja, która ją wykorzystywuje się do tego przypadku, jest o nazwie: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
Tabelą szablonów indeksowania, to są one zdefiniowane przez: {{LinkPatrz|p.szablony_indeksowania}}, a jej zawartość:
<syntaxhighlight lang="lua">
p.szablony_indeksowania={
["Kotwica"] =true,
["Indeksuj"]=true,
};
</syntaxhighlight>
Są to szablony kotwic: {{s|Kotwica}}, który jest szablonem liniowym, a {{s|Indeksuj}}, natomiast to blokowy.
=== {{Śródtytuł|SzablonyWywolywaneOgolny}}{{Code|SzablonyWywolywaneOgolny}} ===
Funkcja rozwija nagłówek, wydzielając z niego zwykły tekst, nie dopełniając pewnych operacji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonyWywolywaneOgolny(naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|naglowek}} {{Patrz|naglowek}} - tekst nagłówka napisu wprowadzenia tekstu.
Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["WydzielZwykłyTekst"]|p=Specjalne}}}}, kod jej wywoływany jest z parametrami:
<syntaxhighlight lang="lua">
local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"](
{
---- tekst nagłówka;
tekst=naglowek,
---- Nie wykorzystywuj w działaniu funkcji: Znaczniki, SzablonyStylowe, ZnakiSpecjalne;
["nagłówek"]=true,
---- Nie wykorzystuj dekodowania tekstu zakodowanego, bez rozwijania, ale wręcz przzeciwnie rozwijaj, pozostawiaj pewne szczególne kody przed rozkodowaniem;
nieklasycznie=true,
---- Bazę kodowania weź z zewnątrz;
kodowanie=false,
---- Wykorzystywana tablica kodowania tekstu modułu: Module:Szablonowe, zakodowanego z zewnątrz;
["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul,
},__FUNKCJA1,__FUNKCJA2);
</syntaxhighlight>
Ta funkcja wydziela zwykły tekst z nagłówka z szablonami zwykłymi i ramkami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, bez naruszenia działania innych elementów szablonowych, jak tagi, czyli: {{s|#tag:}}, które też współdziałają też w kodzie danego nagłówka. Również i z linkami wewnętrznymi i zewnętrznymi, z których wydziela się zwykły tekst, bo wiadomo, że one nie mogą się znaleźć w linkach '''spisu treści''', bo nie może być link w linku w nim, a one niezależnie jakie, bo to ze względu na {{Strong|HTML}} nie możliwe technologicznie.
Definicje dwóch kolejnych funkcji zdefiniowanych powyżej:
<syntaxhighlight lang="lua">
---- szablon - kod obiektu kodu w wikikodzie;
---- obiekt - typ obiektu kodu powyżej;
---- kod - numer tego samego typu obiektu;
local __FUNKCJA1=function(szablon,obiekt,kod)
---- Funkcja wykorzystywana do ewentualnego modyfikowania użytych szablonów i przedstawianiu jego kodem symbolicznym, lub zastępowania pewnych szablonów nagłówków wartością pustą;
local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod);
return szablon,wynik;
end;
local __FUNKCJA2=function(szablon,obiekt,kod)
--- rozwijaj uzyskany szablon, dalej, gdy napotkasz, jeśli zostanie włączone zmienna indeksowania w postaci wartości logicznej;
return czy_indeksowanie;
end;
</syntaxhighlight>
Funkcja zwraca wartości, tzn. zmienną z przetworzenia nagłówkowego, bez usuniętych znaczników, stylów i znaków specjalnych, tzn. części otoczone pewnymi cudzysłowami z taką samą liczbą, więc pogrubienia i pochylenia tekstu:
<syntaxhighlight lang="lua">
return naglowek, Znaczniki, SzablonyStylowe, ZnakiSpecjalne;
</syntaxhighlight>
Definicje tych zwróconych funkcji, tzn.: {{Code|Znaczniki}} {{Patrz|Znaczniki}}, {{Code|SzablonyStylowe}} {{Patrz|SzablonyStylowe}} i {{Code|ZnakiSpecjalne}} {{Patrz|ZnakiSpecjalne}}, którego opisy raczej przedstawiają ich nazwy, dokładnie one są udokumentowane tutaj:
<syntaxhighlight lang="lua">
---- tekst - tekst do przetworzenia;
local function Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2)
---- jakie - nazwa lub wyrażenie regularne Lua w Scribunto nazwy ściśle określonego znacznika, a jeśli go nie podano, to usuwa dowolne znaczniki, jakie napotka, nawet znaczniki mechanizmu MediaWiki, nie tylko HTML;---- jakie - nazwa lub wyrażenie regularne Lua w Scribunto nazwy ściśle określonego znacznika, a jeśli go nie podano, to usuwa dowolne znaczniki, jakie napotka, nawet znaczniki mechanizmu MediaWiki, nie tylko HTML;
---- funkcja do usuwania znaczników, tzn. w niej inne funkcje: __FUNKCJA1 - funkcja do zakodowywania tekstu przed usuwaniem znaczników, a __FUNKCJA2 - funkcja do odkodowania tego, co pozostało;
tekst=p["UsuńZnaczniki"](tekst,jakie,__FUNKCJA1,__FUNKCJA2);
return tekst;
end;
local function SzablonyStylowe(tekst)
---- funkcja do usuwania uruchomionych stylów, tzn. tych: <templatestyles src="..."/>, wtedy to staje się kodem parsera przetwarzanego za pomocą tekstu dla tego typu znacznika, kodami parsera mogą być też inne obiekty jak ramki Lua w Scribunto, ale nie muszą być takie, ale my rozważamy tutaj tylko jeden typ kodu parsera.
tekst=p["UsuńSzablonyStylów"](tekst);
return tekst;
end;
local function ZnakiSpecjalne(tekst)
---- funkcja do usuwania cudzysłowów w takich samych ilościach z prawej i z lewej strony danego fragmentu tekstu w nim;
tekst=p["UsuńZnakiSpecjalne"](tekst);
return tekst;
end;
</syntaxhighlight>
Definicje tych funkcji znajdują się również w module: {{Code|{{ld2|Specjalne}}}}, które również przedstawiają inne funkcje do upraszczania tekstu, w tym nagłówka, ale nie tylko, bo dowolnego tekstu.
=== {{Śródtytuł|RefPrzypisowy}}{{Code|RefPrzypisowy}} ===
Mechanizm zamieniający kod referencji na jej wersję wyświetlaną na ekranie, czyli w nawiasie kwadratowym.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local RefPrzypisowy=function(obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|obiekt}} {{Patrz|obiekt-ref}} - nazwa typu przypisu, czyli jak bez nazwy, czy też jak: '''uwaga''',
* {{Code|kod}} {{Patrz|kod-ref}} - numer danego typu przypisu.
Gdy {{LinkPatrz|obiekt-ref}} nie ma nazwy, wtedy w nawiasie kwadratowym będzie tylko numerek {{LinkPatrz|kod-ref}}, a jeśli ma nazwę, to nazwa oddzielona spacją z prawej strony, a po nim jest ten numerek.
=== Dalsza część funkcji - Tom I ===
Tutaj opowiemy o części wstępnej tej funkcji.
==== Ustalanie zmiennej nazwy modułu aktualnej, czy bieżącej ====
Funkcja ustawia zmienną: {{Code|czy_kodowanie}} {{Patrz|czy_kodowanie}}, na podstawie istnienia zmiennych: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}} i {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Wyznaczanie nazwy modułu aktualnej, czy bieżącej, dla strony aktualnej, jeśli ona nie istnieje ====
Jeżeli zmienna {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}} jest odpowiadającej wartości fdałszywej i mamy strona korzystaną, co określa parametr {{LinkPatrz|czy_artykul_korzystany}}, w postaci wartości prawdziwej, wtedy są liczone kolejne zmienne nazw na podstawie istnienia lub nieistnienia zmiennej {{Code|alternatywna}}, a jeśli ona jest prawdziwa, wtedy wybierane są zmienne z tą aktualną nazwą woluminu wynikłe z {{LinkZobaczTeż|strona_aktualna}}, przeciwnie z nazwą bieżącą woluminu,na podstawie tego, co wyświetla '''Stronicowy Parser''', te nazwy są ze sobą łączone, wtedy powstaje pełna nazwa strony, którą przyrównujemy do {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}. Jeśli wartość {{LinkPatrz|czy_artykul_korzystany}} jest jednak fałszywa, w takim razie jest liczona {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}} na podstawie wartości {{LinkPatrz|nazwa_strony}}.
==== Kodowanie '''HTML''' specjalnych znaków strony ====
Nazwę strony {{LinkPatrz|nazwa_strony}}, w której mogą występować specjalne znaki, które są niezrozumiałe z punktu widzenia '''HTML''', jeżeli np.z nich trzeba zbudować identyfikatory '''id''', a więc trzeba je zakodować, robimy to funkcją: {{Code|{{sr|#p.EncodeId|p=Html}}}}.
==== Zwracanie funkcji liczenia numeru nagłówka ====
Wyznaczamy funkcję: {{Code|HNumer}} {{Patrz|HNumer}}, która jest efektem zwrócenia przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}.
==== Zamienianie szablonów nagłówków, czy nawet tych znaczników, na rozdziały równaniowe ====
Jeśli {{LinkPatrz|czy_kodowanie}} przyjmuje wartość prawdziwą, wtedy definiujemy funkcję: {{LinkŚródtytuł|SpecjalneWprowadzeniaTekstu}}. Dalej funkcja zamienia szablony: {{s|SpisTreści}} i {{s|HNumer}}, a także znaczniki: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, na ich wersję równaniową, aby dało się je rozpoznać jako rozdziały i było je łatwo wsadzić do szablonu takiego jak: {{s|Spis treści}} i inne podobne, za pomocą dwóch kolejnych funkcji wsadzonych do pewnej funkcji modułu {{m|Szablonowe}}, która służy do operacji na takich przypadkach.
=== Zmienna strony z nagłówkami ===
Gdy jest podana zmienna: {{Code|tylko_naglowek}} {{LinkPatrz|tylko_naglowek}}, ma wartość prawdziwą, wtedy zmienna: {{Code|nazwa_strony_z_naglowkami}} {{Patrz|nazwa_strony_z_naglowkami}}, przybiera wartość pustą, przeciwnie gdy zmienna {{Code|nazwa_strony}} {{LinkPatrz|nazwa_strony}} jest ciągiem pusty, wtedy to samo, w innym pozostałym przypadku jest to dokładnie {{LinkPatrz|nazwa_strony}}, gdzie przed nim znajduje się dwukropek {{Code|:}}.
=== Dalsza część funkcji - Tom II ===
Tu powiemy coś o iteratorze, który po zebraniu danych zwraca zmienną {{Code|nil}}, co odpowiada dla pętli, jej przerwaniu.
==== Definicja iteratora zbierania informacji o stronie ====
Aby uruchomić pętle na rzeczywistych danych zakodowanej, czy nie, stronie, trzeba otrzymać zmienną pętli {{Code|iterator}} {{Patrz|iterator}} i go wywoływać bezparametrowo w każdym okrążeniu pętli, aby tak się stało, to trzeba uruchomić funkcję: {{Code|{{sr|#p.IterTekst|p=StronicowyParser/Rozdziały}}}}, na tekście {{LinkPatrz|tekst_artykulu}}, traktując tekst, jakby nie był taki zakodowany, bo tutaj jedynie się liczą elementy niezakodowane, czyli w tym przypadku nagłówki z tekstem rozdziału.
==== Zbieranie informacji o stronie w pętli generowanej przez iterator ====
Będziemy tutaj opisywali pętlę generowaną przez jego iterator {{LinkPatrz|iterator}}. W każdym okrązeniu pętli otrzymujemy dane:
* {{Code|naglowek_tab}} {{Patrz|naglowek_tab}} - gdzie pierwszy jego element to {{Code|naglowek}} {{LinkPatrz|naglowek}},
* {{Code|text_rozdzialu}} {{Patrz|text_rozdzialu}} - tekst rozdziału,
* {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}} - poziom rozdziału.
===== Definicja nowe wartości zbierania uchwytów nagłówka w zmiennej numeracji =====
Deklaracja zmiennej {{Code|numeracja}} {{LinkPatrz|numeracja}} jest na zewnętrz pętli, w niej tworzymy jej nową wartość, którą jest tablica pusta.
==== Uzyskiwanie informacji z tekstu rozdziału nagłówka, i jego możliwych uchwytach, w poszczegolnym okrążeniu pętli, i zrzuceniu tam pojedynczego kodu problemu ====
Jeżeli {{ZobaczTeż|text_rozdzialu}} tekst strony jest zakodowany, to iterujemy po tekście {{LinkPatrz|text_rozdzialu}} w poszukiwaniu kodów bazy kodów zakodowanego tekstu, w tym celu wywołujemy pętlę: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, wtedy uzyskujemy trzy obiekty w każdym przebiegu pętli, tzn. {{Code|szablon}} {{LinkPatrz|szablon}}, {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, za pomocę tego uruchamiamy funkcję: {{LinkŚródtytuł|SzablonNaglowkujWTekscieRozdzialu}}. Jeżeli funkcja napotkała uchwyt szablonu: {{Code|{{s|Śródtytuł}}}}, wtedy jest zatrzymywana, w takim razie mamy informację o wystąpieniu niedozwolonego szablonu nagłówka w tekście. A jeżeli takiego szablonu tam nie ma, to układ iterator {{LinkPatrz|iterator}} iteruje aż do zakończenia danych.
==== Uzyskiwanie nagłówka i do niego identyfikatora '''id''' ====
===== Tekst niezakodowany nagłówka =====
Gdy tekst nie jest zakodowany, wtedy zmienna: {{LinkPatrz|czy_kodowanie}}, ma wartość odpowiaadające fałszywej, wtedy dla tego nagłówka {{LinkPatrz|naglowek}} jest uruchamiana funkcja: {{Code|{{sr|#p.["PrzetwórzNagłówek"]|p=Specjalne}}}}, wtedy otrzymujemy dwie wartości: {{Code|nazwa_rozdzialu_w_artykule}} {{Patrz|nazwa_rozdzialu_w_artykule}} - zmienna idententyfikatora, {{Code|naglowek}} {{LinkPatrz|naglowek}} - zmienna nagłówka. Te dwie zmienne zostały maksymalnie rozwinięte, zostały przystosowane do tego, aby słuzyły do tego, co trzego zostały stworzone.
===== Tekst zakodowany nagłówka =====
Gdy jednak {{LinkPatrz|czy_kodowanie}} przyjełajednak wartość fałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|SzablonyWywolywaneOgolny}}, z której otrzymujemy: {{Code|naglowek}} {{LinkPatrz|naglowek}} - zmienna przetworzonego i maksymalnie rozwiniętego nagłówka, oraz zmienne funkcje: {{LinkPatrz|Znaczniki}}, {{LinkPatrz|SzablonyStylowe}} i {{LinkPatrz|ZnakiSpecjalne}}.
Na podstawie defiicji: {{Code|nazwa_rozdzialu_w_artykule}} {{LinkPatrz|nazwa_rozdzialu_w_artykule}}, mamy: {{Code|naglowek}} {{LinkPatrz|naglowek}}.
====== Kompletowanie nagłówka ======
Ten nagłówek kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, usuwając szablony indeksowania {{LinkPatrz|p.szablony_indeksowania}}, a także znaczniki: {{Tag|li}}, {{Tag|ul}} i {{Tag|ol}}.
====== Kompletowanie identyfikatora nagłówka ======
Kompletując: {{Code|nazwa_rozdzialu_w_artykule}} {{LinkPatrz|nazwa_rozdzialu_w_artykule}}, rozwijamy wszystko, oprócz atrybutów, {{Code|obiekt}} {{Code|{{=}}}} {{Code|ATRYBUTY}}, a na szablonach wywołujemy funkcję: {{LinkŚródtytuł|SzablonyWywolywaneOgolny}}.
Na identyfikatorze nagłówka {{LinkPatrz|nazwa_rozdzialu_w_artykule}} Wywołujemy kolejno lokalne funkcje: {{LinkPatrz|SzablonyStylowe}} - do usuwania rozwiniętych kodów stylów, {{LinkPatrz|ZnakiSpecjalne}} - do usuwania cudzysłowów, i {{LinkPatrz|Znaczniki}} - do usuwania znaczzników.
====== Gdy w kodzie identyfikatora nie ma symbolicznych szablonów ======
W tym przypadku uruchamiamy fukcję do dekodowania znaków '''HTML''', tzn. dziesiętnych, szesnastkowych i literowych, funkcją: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, a później kodujemy specjalne znaki identyfikatora sposobem: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, przy pomocy kodów '''HTML''' dziesiętnych.
===== Usuwanie zbędnych znaków w identyfikatorze =====
Usuwane są potrójne i podwójne cudzysłowy {{Code|'}} oraz odstępy i dolne myślniki na końcach łańcucha, a wewnętrz jego kolejne je są zastępowane jedną spacją.
===== Referencje i wzory matematyczne =====
Referencje są zastępowane odpowiednio przy pomocy funkcji: {{LinkŚródtytuł|RefPrzypisowy}}, a wzory matematyczne, dla obiektów typu {{Code|POSTMATH}} {{Patrz|POSTMATH}}, które są zastępowane prawidłowo poprzez: {{LzLua|mw.text.encode}}, przy pomocy: {{Code|{{sr|#p.NormaKoduZakodowanegoHtmlTekstu|p=Szablonowe}}}}, obiektem: {{Code|postMath}} {{Patrz|postMath}} z ośmioma znakami cyferkami na końcu tego, którym jest {{Code|kod}} {{LinkPatrz|kod}}.
===== Wstępne przygotowanie identyfikatora do końcowego skutecznego użytku =====
Dla danego identyfikatora one mogą się powtarzać, a identyfikator musi być unikalny, zatem trzeba napisać ich dodatkowe numerki, po policzeniu otrzymamy {{Code|numer_tego_samego_naglowka}} {{Patrz|numer_tego_samego_naglowka}}.
====== Tablica identyfikatora i nagłówka ======
Funkcja wykorzystuje tablicę: {{Code|tablica_powtarzajacych_sie_elementow}} {{Patrz|tablica_powtarzajacych_sie_elementow}}, aby policzyć numer powtarzającego się identyfikatora '''id'''.
Dla {{LinkPatrz|numer_tego_samego_naglowka}} równego {{Code|1}}, tworzemy tablicę {{Code|elementy_linku}} {{Patrz|elementy_linku}}, którego pierwszym elementem jest: {{LinkPatrz|nazwa_rozdzialu_w_artykule}}, a drugim nagłówek {{LinkPatrz|naglowek}}, a w przypadku tego numerku innego niż podana liczba, to dajemy do identyfikatora na końcu ten numerek po dolnym myślniku.
====== Uzupełnianie zmiennej do identyfikacji uchwytu z odpowiednim nagłówkiem ======
Jeśli: {{LinkPatrz|obiekty}} i {{LinkPatrz|numeracja}}, istnieją, wtedy do tej pierwszej tablicy dodawane są wszystkie elementy o takim samym typie z {{LinkPatrz|numeracja}}.
To dodawanie na końcu tablicy przedstawia się:
<syntaxhighlight lang="lua">
for _,value_numeracja in ipairs(numeracja)do
obiekty[#obiekty+1]={value_numeracja,{nazwa_strony_z_naglowkami,elementy_linku[1], elementy_linku[2]}};
end;
</syntaxhighlight>
====== Tworzenie tablicy nagłówkami i indetyfikatorami ======
Jeśli {{Code|poziom_rozdzialu}} jest większy od zera, tzn. {{Code|> 0}} {{ZobaczTeż|>0}}, wtedy liczymy numer rozdziału przy pomocy funkcji: {{Code|HNumer}} {{LinkPatrz|HNumer}} liczony z: {{Code|poziom_rozdzialu}} {{LinkPatrz|poziom_rozdzialu}}, tworząc w ten sposób wynik w postaci zmiennej {{Code|numer_rozdzialu_ustalony}} {{Patrz|numer_rozdzialu_ustalony}}.
{{HNumer|1=
======= Rozdziały ewentualnie powtarzające się =======
}}
Na sam koniec tablicy: {{Code|tablica_powtarzajacych_sie_elementow}} {{LinkPatrz|tablica_powtarzajacych_sie_elementow}}, dodajemy element identyfikatora '''id''' bez numerka, tzn.: {{Code|nazwa_rozdzialu_w_artykule}} {{LinkPatrz|nazwa_rozdzialu_w_artykule}}.
{{HNumer|1=
======= Tablica spisu treści =======
}}
Jest tworzona tablica spisu: {{Code|tablica_spisu_tresci}} {{Patrz|tablica_spisu_tresci}}, jako pusta tablica, z później dodanym elementem o kluczu: {{Code|nazwa_strony}} {{Patrz|tablica_spisu_tresci.nazwa_strony}}, którym jest o wartości: {{LinkPatrz|nazwa_strony_z_naglowkami}}.
Do tablicy: {{LinkPatrz|tablica_spisu_tresci}}, dodawane są elementy według schematu:
<syntaxhighlight lang="lua">
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
</syntaxhighlight>
=== Dalsza część funkcji - Tom III ===
Będziemy się tutaj zajmowali z tekstem przed pierwszym rozdziałem na stronie.
==== Nagłówek na samym początku strony ====
Gdy kodowanie jest jednak włączone, tzn.: {{LinkPatrz|czy_kodowanie}}, jest prawdziwe, i mamy artykuł korzystany, tzn.: {{LinkPatrz|czy_artykul_korzystany}}, i zaprzeczenie wyłowania funkcji: {{LinkPatrz|CzyJestTakiProblemJakoElementTablicy}}, przyjmuje wartość prawdziwą, to jeśli na samym początku znajduje się rozdział, wtedy funkcja zwraca wynik: {{LinkPatrz|tablica_spisu_tresci}}.
==== Tekst przed pierwszym rozdziałem ====
Wyznaczamy ten tekst, który będzie ukrywał się pod zmienną: {{Code|tekst_zerowy}} {{Patrz|tekst_zerowy}}, który jest tekstem przed pierwszym rozdziałem lub samym tekstem zakodowanego wikikodu {{Code|tekst_artykulu}} {{LinkPatrz|tekst_artykulu}}.
===== Szablony nagłówka w tekście zerowym =====
W tym tekście iterujemy jak w punkcie: {{LinkZobaczTeż|text_rozdzialu}}, tylko zamiast {{LinkPatrz|text_rozdzialu}} jest {{LinkPatrz|tekst_zerowy}}.
=== Dalsza część funkcji - Tom IV ===
Zwracaną wartością tej funkcji jest: {{Code|tablica_spisu_tresci}} {{LinkPatrz|tablica_spisu_tresci}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
akxa5v95yd68fjtl2fpdcfbwjoiz7e4
Wikibooks:Moduły/StronicowyParser/Kategorie
4
63514
551537
547498
2026-08-12T03:26:59Z
Persino
2851
551537
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Kategorie}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje w tym module służą do zgłaszania kategorii zgłaszanych przez '''Stronicowy Parser''', poprzez proste wywołanie w szablonie: {{Code|{{m|StronicowyParser|WstawKategorie}}}}, który wywołuje funkcję: {{Code|{{m|StronicowyParser/Kategorie|WstawKategorie}}}}. Kategorie są liczone raz na cały moduł poprzez wywołanie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, za pomocą funkcji: {{LzLua|mw.loadData}}.
== {{Śródtytuł|p.InformacjeKategorie}}{{Code|p.InformacjeKategorie}} ==
Funkcja do generowania kategorii generowane przez '''Stronicowy Parser'''.
<syntaxhighlight lang="lua">
function p.InformacjeKategorie()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
Uruchamiana jest funkcja tablicowa ładowana raz na całą stronę:
<syntaxhighlight lang="lua">
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Wytłumaczenie zmiennych:
* {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tabela, z której są uzyskiwane dane o problemach, by uzyskać z niej wiedzę o kategoriach.
Tej zmiennej tablicowej, jeśli nie istnieje jej podtablica o kluczu: {{Code|problemy}} {{Patrz|problemy}}, wtedy ta funkcja jest zakańczana. Ale jeśli dodatkowo jej podtablica o kluczu: {{Code|ktory_szablon_stronicowy_ma_zwracac_kategorie}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}}, nie istnieje, też wtedy funkcja jest zakańczana, pod warunkiem, jeśli poprzednim razem się nie zakończyła.
Funkcja liczy nazwy ksiązki danego artykułu, tzn.: {{Code|nazwa_przestrzeni_nazw_strony}} {{Patrz|nazwa_przestrzeni_nazw_strony}}, {{Code|nazwa_przestrzeni_nazw_ksiazki_strony}} {{Patrz|nazwa_przestrzeni_nazw_ksiazki_strony}} i {{Code|nazwa_ksiazki_strony}} {{Patrz|nazwa_ksiazki_stronynazwa_ksiazki_strony}}, uzyskiwane z {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, z podzmiennych o kluczach kolejno: {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{Patrz|nazwa_przestrzeni_woluminu}} i {{Code|nazwa_woluminu}} {{Patrz|nazwa_woluminu}}.
Dla poszczególnych przestrzeni książkowych, tzn.: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, {{Np|User|link=tak}} (w przestrzeni użytkownika), {{Np|Project|link=tak}} (w niby przestrzeni nazw: '''{{ls2|Brudnopis}}/<użytkownik>/''') i dla innych przestrzeni użytkowych (niepodręcznikowych), są inicjowane zmienne: {{Code|strony_z_wielkiej_litery}} {{Patrz|strony_z_wielkiej_litery}} i {{Code|strony_z_malej_litery}} {{Patrz|strony_z_malej_litery}}, czyli pierwsza nazwa zaczyna się od duzej litery a druga od małej.
=== {{Śródtytuł|Czy_jest_taki_element_w_tabeli_problemow}}{{Code|Czy_jest_taki_element_w_tabeli_problemow}} ===
Funkcja sprawdza, czy taki problem istnieje w podanej tabeli.
<syntaxhighlight lang="lua">
local function Czy_jest_taki_element_w_tabeli_problemow(element, tablica_nazwy_ksiazki)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|element}} {{Patrz|element}} - klucz danego problemu,
* {{Code|tablica_nazwy_ksiazki}} {{Patrz|tablica_nazwy_ksiazki}} - tablica, w której szukamy problemu.
=== {{Śródtytuł|Dodaj_kategorie_naglowkuj_szczegolne}}{{Code|Dodaj_kategorie_naglowkuj_szczegolne}} ===
Funkcja służy do zgłaszania błędów w przypadku szablonu: {{s|Śródtytuł}} i {{s|LinkŚródtytuł}}, dotyczące strony dołączonej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Dodaj_kategorie_naglowkuj_szczegolne(kategoria_bledu,czesc_nazwy_kategorii)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|kategoria_bledu}} {{Patrz|kategoria_bledu}} - kod problemu dla zgłaszania błędu w postaci kategorii,
* {{Code|czesc_nazwy_kategorii}} {{Patrz|czesc_nazwy_kategorii}} - dokończenie nazwy strony zgłaszanej kategorii.
=== {{Śródtytuł|Dodaj_kategorie_naglowkuj_ogolne}}{{Code|Dodaj_kategorie_naglowkuj_ogolne}} ===
Funkcja służy do zgłaszania błędów w przypadku szablonu: {{s|Śródtytuł}} i {{s|LinkŚródtytuł}}, dotyczące strony korzystanej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Dodaj_kategorie_naglowkuj_ogolne(zmienna_korzystane,czesc_nazwy_kategorii)...end;
</syntaxhighlight>
Parameetry funkcji:
* {{Code|zmienna_korzystane}} {{Patrz|zmienna_korzystane}} - kod problemu zgłaszanej kategorii,
* {{Code|czesc_nazwy_kategorii}} - jak w: {{LinkPatrz|czesc_nazwy_kategorii}}.
=== Dalszy opis funkcji ===
Tutaj są opisywane kody, które są wykorzystywane do zgłaszanych nazw kategorii, a te kody są ustawiane przez oprogramowanie '''Stronicowego Parsera'''.
==== Dalszy opis funkcji - część I ====
{{Tab}}Dla podtablicy: {{LinkPatrz|problemy}}, dla jej też podtablicy dla klucza o nazwie: {{Code|problemy książkowe}} {{Patrz|problemy książkowe}}, sa generowane podkategorie.
Kody zgłaszanych problemów:
* {{Code|błędy uchwytów dołączonych stron}} {{Patrz|błędy uchwytów dołączonych stron}},
* {{Code|brak spisów treści do dołączonych stron}} {{Patrz|brak spisów treści do dołączonych stron}},
* {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}},
* {{Code|dołączone strony główne nie istnieją}} {{Patrz|dołączone strony główne nie istnieją}}.
Dla: {{LinkPatrz|brak spisów treści do dołączonych stron}}, są generowane kategorie, gdy nie są ustawione problemy: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{LinkPatrz|brak spisów treści do dołączonych książek na ich stronach głównych}} i {{Code|dołączone strony główne nie istnieją}} {{LinkPatrz|dołączone strony główne nie istnieją}}.
Dla: {{LinkPatrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, są generowanekategorie, gdy nie są ustawione problemy: {{Code|dołączone strony główne nie istnieją}} {{LinkPatrz|dołączone strony główne nie istnieją}}.
Dla: {{LinkPatrz|dołączone strony główne nie istnieją}}, gdy strona (artykuł) nie należą do aktualnej książki.
Jest uruchamiana funkcja: {{LinkŚródtytuł|Dodaj_kategorie_naglowkuj_szczegolne}}, którego wywołania są:
<syntaxhighlight lang="lua">
Dodaj_kategorie_naglowkuj_szczegolne("powtórka nagłówek w stronie dołączonej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku");
Dodaj_kategorie_naglowkuj_szczegolne("nagłowek w tekście rozdziału w stronie dołączonej","z użyciami szablonu nagłówka w tekstach rozdziałów");
</syntaxhighlight>
==== Dalszy opis funkcji - część II ====
Dla obiektów z tablicy: {{Code|{{sr|#p.tablica_obiektowych_form|p=StronicowyParser/obiekty}}}}, jeśli są ustawione problemy do zgłoszenia, jeśli są ustawione, a one są:
Kody zgłaszanych problemów dla elementów nazwanych i nienazwanych:
* {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}} - dla wersji {{ZobaczTeż|LinkPobierzObiekt}} bez i z: {{Code|Link}} i {{Code|Pobierz}},
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}} - dla obiektów, nie: {{LinkZobaczTeż|LinkPobierzObiekt}}, z trzecim parametrem od: {{Code|1}} do {{Code|3}}, dla funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}},
* {{Code|brak uchwytu}} {{Patrz|brak uchwytu}} - dla elementów z: {{LinkZobaczTeż|LinkPobierzObiekt}}, z brakiem uchwytów do obiektów.
==== Dalszy opis funkcji - część III ====
Dla tablicy o kluczu: {{LinkPatrz|problemy}}, są generowane kategorie, jeśli są ustawione któreś kodów problemów, jeżeli ich wartości przyjmują wartość {{Code|0}}, czyli:
* {{Code|nieprawidłowe nazwy korzystanych stron}} {{Patrz|nieprawidłowe nazwy korzystanych stron}},
* {{Code|nieprawidłowe nazwy stron dołączanych do stron}} {{Patrz|nieprawidłowe nazwy stron dołączanych do stron}},
* {{Code|strona nie istnieje}} {{Patrz|strona nie istnieje}},
* {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}},
* {{Code|niedozwolone znaki w spisach treści}} {{Patrz|niedozwolone znaki w spisach treści}}.
==== Dalszy opis funkcji - część IV ====
Dla tablicy o kluczu: {{LinkPatrz|problemy}}, są generowane kategorie, jeśli są ustawione któreś kodów problemów dla poszczególnych przestrzeni stron, w któreś one leżą:
* {{Code|korzystana strona główna nie istnieje}} {{Patrz|korzystana strona główna nie istnieje}}.
==== Dalszy opis funkcji - zebrane nazwy stron kategorii ====
Gdy zbiór zebranych stron jest niepusty, wtedy te nazwy są wstawiane do funkcji: {{Code|{{sr|#p.Kategorie|p=Kategorie}}}}.
== {{Śródtytuł|p.WstawKategorie}}{{Code|p.WstawKategorie}} ==
Gdy są ustawione zmienne szablonowe dziecka funkcji tej ramki, lub rodzica, wtedy dla zmiennych najpierw tego pierwszego, a później tego drugiego, ale parametrów o nazwach: {{Code|bez kategorii}} {{Patrz|bez kategorii}} i {{Code|dokumentacja}} {{Patrz|dokumentacja}}.
Gdy dla {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, gdy ustawione nie są problemy: {{LinkPatrz|problemy}} i {{LinkPatrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}}, to funkcja idzie dalej, przeciwnie, ona się zakańcza.
Jest liczona nazwa szablonu i kod uchwytu przy pomocy kodów kolejno:
<syntaxhighlight lang="lua">
local nazwa_szablonu_rodzica=frame.args[2] or pf.args["nazwa szablonu rodzica"] or require("Module:Szablonowe").NazwaSzablonu(pf:getTitle());
</syntaxhighlight>
Jeśli nie ma uchwytu, to funkcja się zakańcza, przeciwnie kod jego jest odkodowany z: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
Wtedy są liczone zmienne na podstawie:
<syntaxhighlight lang="lua">
local ktory_szablon_stronicowy_ma_zwracac_kategorie1=nazwa_szablonu_rodzica..":"..kod_uchwytu;
local ktory_szablon_stronicowy_ma_zwracac_kategorie2=tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie;
</syntaxhighlight>
Jeżeli obie te zmienne są policzone i są sobie równe, wtedy kod idzie do instrukcji warunkowej, wywołując przy pomocy funkcji: {{LzLua|mw.loadData}}, wywołując ten opisywany moduł, a właściwie funkcję: {{LinkŚródtytuł|p.InformacjeKategorie}}, z poziomu modułu: {{Code|{{ld2|StronicowyParser/InformacjeKategorie}}}}, wtedy otrzymujemy tablicę, z którego liczymy podtablicę o kluczu: {{Code|informacje_o_kategoriach_stronicowego_parsera}} {{Patrz|informacje_o_kategoriach_stronicowego_parsera}}, który zawiera policzone raz na stronę wszystkie kategorie zgłoszone przez '''Stronicowy Parser''', które są zwracane przez tą funkcję.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5slh6cb82hs30xu0g4grqg0xnlqb8gh
Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek
4
63515
551538
547838
2026-08-12T03:30:23Z
Persino
2851
551538
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}.
== {{Śródtytuł|funkcje lokalne}}Funkcje lokalne ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}.
=== {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} ===
Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji,
* {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy,
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji,
* {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie,
* {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji.
Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji:
* {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać,
* {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały,
* {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych,
* {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać,
* {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami,
* {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy,
* {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne.
Powyższe parametry to są parametry ramki rodzica, czyli szablonu.
Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje.
Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają:
* {{Code|1}} - rozważa tylko artykuły,
* {{Code|2}} - rozważa tylko rozdziały,
* {{Code|3}} - rozważa nie tylko artykuły, również rozdziały.
Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}.
Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą.
Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału.
Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}.
Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy.
Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze.
Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł.
=== {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} ===
Funkcja zamienia numerki z kropkami na tabelę, z nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami.
Funkcja zwraca tą tablicę.
=== {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ===
Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - jak w: {{LinkPatrz|frame}},
* {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów,
* {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów.
Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}.
Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka.
Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}.
=== {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ===
Funkcja łączy numerację spisu z numeracją artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu,
* {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu.
Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}.
Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy.
Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu.
== {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji ==
To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}.
=== {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} ===
Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - jak w: {{LinkPatrz|frame}},
* {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}.
==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ====
Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień.
Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}:
<syntaxhighlight lang="lua">
local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}:
* {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną,
* {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna,
* {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić,
* {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}},
* {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie,
* {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału,
* {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale,
* {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy,
* {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika,
* {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania,
* {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu,
* {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję,
* {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach,
* {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna,
* {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}},
* {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści.
Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}.
Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów.
Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}.
W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}.
A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}.
==== Dalsza część funkcji ====
Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym.
Główna definicja funkcji:
<syntaxhighlight lang="lua">
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;
</syntaxhighlight>
=== {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} ===
Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - jak w: {{LinkPatrz|frame}},
* {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}.
==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ====
Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień.
Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}.
Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}.
===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} =====
Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu.
===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} =====
Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WynikArtykulowyZNumeru(numer_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}.
Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}.
===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} =====
Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}.
Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}.
Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}.
W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}.
==== Dalsza część funkcji ====
Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym.
Główna definicja funkcji:
<syntaxhighlight lang="lua">
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true);
return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;
</syntaxhighlight>
=== {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} ===
Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - jak w: {{LinkPatrz|frame}},
* {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}.
==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ====
Jest to funkcja do pobierania danych informacji o spisach.
Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc:
<syntaxhighlight lang="lua">
local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end;
</syntaxhighlight>
Parametry funkcji:
* Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}},
* {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji,
* {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki,
* {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej.
Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu.
Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}.
Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}.
{{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy:
Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej.
Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}.
{{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}.
----
Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}.
Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}.
----
Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie:
<syntaxhighlight lang="lua">
table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,});
</syntaxhighlight>
Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się.
==== Dalsza część funkcji ====
Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''.
Główna definicja funkcji:
<syntaxhighlight lang="lua">
local tab_dane_ksiazki=nil;
...
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pa00x6osz0lg5b4k1qchyik0cy88eap
Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom I
4
63522
551539
547031
2026-08-12T03:34:16Z
Persino
2851
551539
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Funkcje lokalne ==
=== {{Śródtytuł|Ile}}{{Code|Ile}} ===
Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow2}} {{Patrz|tabela_rozdzial_artykulow2}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w takich rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spacją, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}}, by zaliczyć je do tego typu:
<syntaxhighlight lang="lua">
p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={
["licencja"]=true,
["inne"]=true,
["bibliografia"]=true,
["zobacz też"]=true,
["linki zewnętrzne"]=true,
};
</syntaxhighlight>
A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}.
A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element,
* {{Code|tabela_rozdzial_artykulow2}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}}
=== {{Śródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}{{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} ===
==== Opis pobieżny funkcji ====
Funkcja do wstawiania elementów z ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, za pomocą funkcji wstawianej jako parametr: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{Patrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, do odpowiedniej pozycji artykularnej od: {{Code|2}} do {{Code|13}}, a pozycja {{Code|1}}, to pozycja rozdziałowa, ona jest określana przez zmienną: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, a pozycja, którą wsadzamy to: {{Code|tab_stare}} {{Patrz|tab_stare}}.
Funkcja zwraca pozycje:
<syntaxhighlight lang="lua">
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
</syntaxhighlight>
Opis funkcji:
* {{Code|numer_rodzaju_artykulu_poprz}} {{Patrz|numer_rodzaju_artykulu_poprz}} - jest to wartość zwrócona przez funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}}, w odróżnieniu od: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, jest mniejszy o jeden, czyli wtedy to była a poziomie przypisywania wartość {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}},
* {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{Patrz|tab_pozycja_elementow_w_spisie_rzeczy}} - pierwsza artykularna zmienna zwrócona przez funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}},
* {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}} - tablica do sprawdzania, czy artykuł z nagłówkiem, ma powtórzenie tego bez nagłówka, czyli dla tego bez tego jest inna numeracja niż z nagłókiem, a gdy niema tego bez, to wtedy dzięki tej funkcjinumeracja tak się zachowuje, jaak tam by był ten element, co prawda jest tam dodawany, ale jako z informacją taką, że bz numeru ustalanym przez funkcję: {{LinkŚródtytuł|Ile}}, A przy okazji, aby tego elementu nie dodawać ponownie, to w nim jest ustalana druga zmienna na {{Code|1}}, a wcześniej była na {{Code|0}}, i dlatego ona była wtedy dodawana, a później już tak nie jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow --[[]])...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa funkcji, z pominięciem, której funkcję można napisać zamiast {{Code|p.}} {{Patrz|p.}} jako {{Code|p:}} {{Patrz|p:}},
* {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} - opis jest jak w: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}},
* {{Code|tabela_rozdzial_artykulow2}} - ta tabela działa według opisu jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
* {{Code|tablica_artykulow_zebranych}} - działa jak w: {{LinkPatrz|tablica_artykulow_zebranych}},
* {{Code|wliczaj_artykuly_tego_rozdzialu}} {{Patrz|wliczaj_artykuly_tego_rozdzialu}} - jak przybiera odpowiadającą wartość fałszywą, to do: {{LinkPatrz|numer_rodzaju_artykulu}}, dodawane jest {{Code|6}},
* {{Code|szablon}} {{Patrz|szablon}} - jest to tekst zakodowany całego linku wewnętrznego, czy zewnętrznego, czy linku inteligentnego w postaci szablonu,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki i nazwa książki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - jest to nazwa artykułu danego spisu treści,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony, gdzie są rozwijane adresy względne stron, poczytaj: {{lr2|Moduły/StronicowyParser/Rozdziały}} {{Patrz|Moduły/StronicowyParser/Rozdziały}},
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - uchwyt do tablicy bazy kodowania zapisany w samej bazie dla danego artykułu, używany zamiast:{{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy zapisana w postaci osobnej tablicy, a nie jej w wewnętrznej bazie, nie jak to było w postaci zmiennej {{LinkPatrz|nazwa_modulu}}, używana zamiast: {{LinkPatrz|nazwa_modulu}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica rozłożeń zmiennej {{Code|szablon}}, dla zmiennych szablonowych, i dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}},
* {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - obiekt i kod, czyli: zmienne charakteryzujące zmienną: {{LinkPatrz|szablon}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tablica przekierować, aby nie rozpatrywać tego samego przekierowania wiele razy,
* {{Code|przedrostek_listy}} {{Patrz|przedrostek_listy}} - tekstowy przedrostek listy z przedziału znaków: {{Code|<nowiki>[;%*:#]+</nowiki>}} {{Patrz|wzor_do_linii_z_lista}}, rozpoczynających pojedyncza linię,
* {{Code|tekstowy_przedrostek}} {{Patrz|tekstowy_przedrostek}} - numeracja rozdziału, z jakim rozpoczyna się rozdział,
* {{Code|w_rozdziale}} {{Patrz|w_rozdziale}}} - gdy link znajduje się w rozdziale dodatnim,
* {{Code|linia_artykokow}} {{Patrz|linia_artykokow}} - cała linia z artykułem lub artykułami, tą linią równie dobrze może być rozdział, tu chodzi o rozdział dodatni.
==== Opis pobieżny funkcji {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} ====
Przedstawiamy tutaj funkcję: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, która jest opisana w punnkcie: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Definicja funkcji w nagłówku:
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_rozdzial_artykulow2}} - jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
* {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} - jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}},
* {{Code|tab_stare}} - jak w: {{LinkPatrz|tab_stare}}.
Ta funkcja została opisana już wcześniej.
==== Szczegółowy opis funkcji głównej ====
Uruchamiamy funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, która jest zddefiniowana w module: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}. Wywołujemy tę funkcję:
<syntaxhighlight lang="lua">
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
</syntaxhighlight>
Pierwszy elementem {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}} jest to zmienna tablicowa, która opisuje parametry artykularno-linkowe parametry, drugi {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, do której kategorii należy dany artykuł w linku, a trzeci parametr, to {{Code|id}} {{Patrz|id}}, to zbierane są parametry linkowe z szablonu {{s|SpisTreści}}, czwarty to {{Code|parametry_szablonu}} {{Patrz|parametry_szablonu}}, w przypadku szablonów inteligentnych linków, to są parametry wywołań tych szablonów, ostatni parametr to {{Code|kom}} {{Patrz|kom}}, przedstawia on, jeśli {{Code|false}}, to artykuł zakwalifikowany zoistał poprawnie do rozważań, a {{Code|true}} już nie.
To {{LinkPatrz|parametry szablonu}}, to jest tablica z trzech elementów, tzn.:
<syntaxhighlight lang="lua">
local parametry szablonu={tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,};
</syntaxhighlight>
Elementy tablicy:
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tablica parametrów uzyskanych z argumentów, i ich wartości, nazwanych i nienazwanych,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - to jest nazwa uzyskanego szablonu linków inteligentnych lub nie,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela modyfikatorów rozkładanego szablonu.
Jeśli parametr: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, istnieje, to tworzona jest z niego taka sama wersja lub przy nieistnnieniu parametru {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, do niego jest dodawana jest liczba {{Code|6}}. W ten sposób możemy zbierać artykuły książki i inne,ktore należą do pewnych rozdziałów i które nie należą.
===== {{Śródtytuł|ParametrPierwszy}}{{Code|ParametrPierwszy}} =====
Funkcja zbierające dane z {{Code|tab_artykul}} {{Patrz|tab_artykul}}, którego to jest czteroelementowa tablica, dotycząca danego artykułu. Drugim parametrem {{Code|czy_niedozwolone}} {{Patrz|czy_niedozwolone}} jest zmienna logiczna mówiąca, czy wskazać w nazwie artykułu, czy są dozwolone znaki, jest to sprawdzenie według wyrażenia regularnego: {{Code|<nowiki>[|<>{}%[%]]</nowiki>}} {{Patrz|wzor_znaki_niedozwolone}} na podstawie funkcji {{LzLua|mw.ustring.match}}, czyli: {{Code|znaki_niedozwolone}} {{Patrz|znaki_niedozwolone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
ParametrPierwszy(tab_artykul,czy_niedozwolone)...end;
</syntaxhighlight>
Parametry fubkcji:
* {{Code|tab_artykul}} - jak w: {{LinkPatrz|tab_artykul}},
* {{Code|czy_niedozwolone}} - jak w: {{LinkPatrz|czy_niedozwolone}}.
Gdzie {{LinkPatrz|tab_artykul}}, który jest pierwszym parametrem przyjmowanym przez funkcję, jest zdefiniowany jako czteroelementowa tablica, którą przypisujemy do czterem osobnych parametrów:
<syntaxhighlight lang="lua">
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
</syntaxhighlight>
Jeżżeli, któreś z parametrów z {{LinkPatrz|tab_artykul}}, tzn. element jego {{Code|2}}-gi i {{Code|3}}-ci, istnieje, to układana jest trzyelementowa tablica z elementów od {{Code|1}} do {{Code|3}}, z dodatkowym elementem {{Code|<nowiki>["LINK"] = true</nowiki>}}, a element czwraty to jest {{Code|tablica_przekierowania}} {{Patrz|tablica_przekierowania}}, a jeżeli te dwa elementy, nie licząc czwartego, wcale nie istnieją, wtedy jest tworzony łańcuch znakowy z tego pierwszego elementu. Tak tworzymy, nową wersję tablicy {{Code|tab_artykul}} {{Patrz|tab_artykul-nowa wersja}} lub łańcuch znakowy, w postaci:
<syntaxhighlight lang="lua">
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
</syntaxhighlight>
Funkcja zwraca trzy parametry, tzn. parametry: {{LinkPatrz|tab_artykul-nowa wersja}}, {{LinkPatrz|znaki_niedozwolone}} i tablicę przekierowania {{LinkPatrz|tablica_przekierowania}}, co skrótowo piszemy: {{Patrz|zwracane-ParametrPierwszy}}:
<syntaxhighlight lang="lua">
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
</syntaxhighlight>
===== {{Śródtytuł|RozwijanieNazwy}}{{Code|RozwijanieNazwy}} =====
Szablon służy do rozwijania nazwy szablonu, zamienia nowe linie szablonowe {{s|Br}} i znacznikowe {{Tag|br|pojedynczy}}, na pojedynczą spację.
Szablon wykorzystuje tablice szablonów korekt umieszczonych w nazwie linku, czy to normalnego, czy szablonowego (inteligentnego), którego definicja {{Patrz|p.szablony_dozwolone_w_nazwach_linkowych}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_nazwach_linkowych={
["Korekta"] =2,
};
</syntaxhighlight>
Do tego celu używa on funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}, aby szablony w tej tablicy zastąpić odpowiednimi parametrami, którego nazwy, czy numery są oddzielone średnikami, lub nie, ale nazwy są ich w postaci pojedynczej liczby.
Szablon również uwzględnia szablony rozwijane przez '''JavaScript''', tzn. tabelę:
<syntaxhighlight lang="lua">
p.szablony_rozwijane_przez_javascript_nazwowe_linkowe={
};
</syntaxhighlight>
W tym przypadku szablony są kompletowane do postaci pojedynczego wywołania, które może być w przyszłości rozwinięte, np. przez ten język.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwijanieNazwy(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja jedynie nie rozwija funkcją: {{LzLua|frame:preprocess}}, szablonów stronicowego parsera, podane podkategoriach w kategorii: {{Code|{{lk2|Szablony stronicowe}}}}, za pomocą odpowiednich metod.
==== Dalszy opis funkcji przy istnieniu parametrów linkowych normalnych, czy szablonowych (linków inteligentnych) ====
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|{{=}}}} {{Code|1}} =====
Tworzony jest numerek {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{Patrz|numer_rodzaju_artykulu_w_podreczniku}}, który w stosunku do: {{LinkPatrz|numer_rodzaju_artykulu}}, jest większy o jeden, a schemat tej operacji:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
</syntaxhighlight>
====== Tworzenie tablicy: {{Code|tablica_artykulow_zebranych}} ======
Opiszemy tutaj tablicę: {{Code|tablica_artykulow_zebranych}}, opisaną wstępnie w punkcie: {{LinkPatrz|tablica_artykulow_zebranych}}.
; Tablica {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} nie jest tablicą
Gdy element pierwszy: {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, nie jest tablicą, wtedy jedynie liczymy, czy ona ma znaki niedozwolone {{LinkPatrz|wzor_znaki_niedozwolone}}, a póżniej wiedząc ten element, który jest aktualną nazwą artykułu kiążki, tworzymy tabelę {{Patrz|tablica_artykulow_zebranych-imicjacja}}:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
</syntaxhighlight>
; Przeciwny przypadek
Wpierw liczone są parametry z wywołania, z opcją, czy ma liczyć, czy nazwa artykułu ma znaki niedozwolone, z funkcji: {{LinkŚródtytuł|ParametrPierwszy}}:
<syntaxhighlight lang="lua">
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
</syntaxhighlight>
Dalej sprawdzane jest, czy książka przyjmuje atrybut, tzn.: '''czy inna książka''', wtedy liczymy to z kodu z tablicy przekierowania: {{LinkPatrz|tablica_przekierowania}}, jeżeli jej wartość istnieje, tzn. {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}:
<syntaxhighlight lang="lua">
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
</syntaxhighlight>
Element: {{Code|<nowiki>[1][5]</nowiki>}}, to jest element tablicy {{LinkPatrz|tablica_przekierowania}}, który przedstawia, czy to jest artykuł bieżącej książki, którego przekierowanie kieruje, wtedy ten parametr ma wartość {{Code|true}}, a gdy adres przekierowania wskazuje na inną książkę, wtedy {{Code|false}}. Jeśli ten parametr ma wartość fałszywą, wtedy jest sprawdzane, czy jest tablicą w {{Code|czy_tablica}} {{Patrz|czy_tablica}}, według:
<syntaxhighlight lang="lua">
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
</syntaxhighlight>
Lub w przeciwnym wypadku liczymy parametry artykularne z tablicy przekierowania: {{LinkPatrz|tablica_przekierowania}}, a jeżeli parametry lub nagłówek przekierowania, w tej tablicy, istnieje, wtedy parametr {{LinkPatrz|czy_tablica}} przyjmuje wartość {{Code|true}}, w przeciwnym wypadku wartość fałszywą.
Gdy ten element nie jest tablicą, to tworzona jest nazwa pełna artykułu: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}} i umieszczana w tablicy {{LinkPatrz|tablica_artykulow_zebranych}}, w sposób, co dalej jest tworzona w dalszych operacjach tablica: {{LinkPatrz|tablica_artykulow_zebranych}}, z podobną tablicą początkową jak w poprzednim przypadku jego tworzenia, czyli jak w: {{LinkPatrz|tablica_artykulow_zebranych-imicjacja}}.
Gdy element jest jednak tablicą, też jest liczona pełna nazwa artykułu (gdy nazwa artykułu przekierowania istnieje, wtedy ona jest liczona z: {{Code|tablica_przekierowania[2]}}, w przeciwnym wypadku, jeśli element {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}} jest tablicą, wtedy liczymy ją z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1][1]}}, w innym wypadku z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}), a z niej liczymy tablicę {{LinkPatrz|tablica_artykulow_zebranych}}, jak w: {{LinkPatrz|tablica_artykulow_zebranych-imicjacja}}, w przypadku pierwszego artykułu nienagłówkowego, lub pierwszego artykułu, który może być tylko z nagłówkiem, bo tego bez, w spisie, artykuł poprzedni nie jest tym artykułem bez niego, a więc tego tam nie ma tam w takim przypadku.
Gdy funkcja napotkała artykuł o takim samym stronie, co poprzednio, to do wartości początkowej, bez defininiowania jeszcze raz tej samej tablicy, jest ustawiane odpowiednio:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych[3]=true;
</syntaxhighlight>
Co informuje, że następny artykuł jest ten sam, tylko inny nagłówek lub jest tym razem z nagłówkiem, a poprzedni bez.
====== Rozwijanie nazwy linku ======
Kompletowany jest drugi element tablicy {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, rozwijając szablony w nim względem funkcji: {{LinkŚródtytuł|RozwijanieNazwy}}. Dalej z tej nazwy są usuwane znaki specjalne według funkcji: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, z modułu: {{Code|{{ld2|Specjalne}}}}. Następnie działamy funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, które końcowe spacje usuwa, a wewnętrz powtarzające zamienia kolejne na jedną spację.
====== Dodawanie do tablicy problemów, jeśli nastąpił problem ze znakami niedozwolonymi ======
A między czasie, gdy mamy niedozwolone znaki: {{LinkPatrz|znaki_niedozwolone}}, za pomocą funkcji pytającej sprawdzamy, czy element inny zgłoszeniowy został dodany do tablicy problemów: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, aż w końcu dodajemy ten problem, jeśli go nie ma przy pomocy funkcji: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
====== {{Śródtytuł|inicjacja_i_kompletowanie_zmiennych}}Ustalanie nazwy jednostki, kompletowanie linii artykułów i inicjowanie pozycji, w tabeli zebranych elementów, w tabeli zebranych elementów ======
Ustalamy nazwę jednostki z funkcji: {{Code|{{sr|#p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem|p=StronicowyParser/Potrzebne}}}}, i inicjujemy tą wartością, czyli {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, wartość starą: {{Code|stara_nazwa_jednostki}} {{Patrz|stara_nazwa_jednostki}}, według:
<syntaxhighlight lang="lua">
---- Piszanie pełnej nazwy jednostki bez parametrów i nagłówka;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
---- Inicjowanie starej wartości tą policzoną;
local stara_nazwa_jednostki=nazwa_jednostki;
</syntaxhighlight>
Dalej {{Śródtekst|uchwyt=tabela_rozdzial_artykulow2|tekst=inicjujemy pozycję, jeżeli nie istnieje taka, na podstawie policzonej wartości: {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, w tablicy: {{LinkPatrz|tabela_rozdzial_artykulow2}}}}, według:
<syntaxhighlight lang="lua">
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
</syntaxhighlight>
Co {{Śródtekst|uchwyt=linia_artykokow|tekst=dalej linię artykułów {{Code|linia_artykokow}} {{LinkPatrz|linia_artykokow}}, kompletujemy, funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, z modułu: {{Code|{{ld2|Szablonowe}}}}, znając tablicę: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}}}, według:
<syntaxhighlight lang="lua">
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
</syntaxhighlight>
====== Uwzględnianie niepodanego elementu nienagłówkowego w tablicy zebranych parametrów ======
Gdy tablica przekierowania {{LinkPatrz|tablica_przekierowania}} istnieje, wtedy sprawdzamy czy zmienna logiczna {{LinkPatrz|czy_tablica}} jest prawdą i czy {{LinkPatrz|stara_nazwa_jednostki}}, czy jest nie pusta, w takim razie jej element {{Code|2}} przydzielany jest do zmiennej {{Code|przekierowanie}} {{Patrz|przekierowanie}}, czyli nazwie artykułu przekierowania.
Inicjujemy nową zmienną {{Code|przekierowanie}} {{LinkPatrz|przekierowanie}} z artykułu, parametrów i nagłówka, ale wpierw sprawdzamy, czy dwa ostatnie istnieją, według:
<syntaxhighlight lang="lua">
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4]) and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,}or przekierowanie) or nil;
</syntaxhighlight>
Tworzony jest nowy element {{Code|nazwa jednostki}} {{Patrz|nazwajednostki-nowy}} z {{LinkPatrz|nazwa jednostki}}, parametrów i nagłówka, według rysu:
<syntaxhighlight lang="lua">
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
</syntaxhighlight>
Jeżeli parametr drugi {{LinkPatrz|tablica_artykulow_zebranych}}, a trzeci jej jest {{Code|false}}, wtedy kreujemy tablicę: {{LinkPatrz|tab_stare}}.
Wsadzamy element {{LinkPatrz|tab_stare}} do zbioru {{LinkPatrz|tablica_artykulow_zebranych}} przy pomocy funkcji: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Następnie jej drugiemu elementowi {{LinkPatrz|tablica_artykulow_zebranych}} dawana jest wartość {{Code|1}}, aby nie dało się ponownie tworzyć i wsadzać element {{LinkPatrz|tab_stare}}, do tablicy {{LinkPatrz|tabela_rozdzial_artykulow2}} na pozycji {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}} według funkcji {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, odpowiedzialny za artykuł nienagłówkowy, ktorego nie ma w spisach treści książki, ale są one w wersji nagłówkowej.
Jeżeli tablica przekierowania {{LinkPatrz|tablica_przekierowania}} jednak nie istnieje, wtedy tak samo sprawdzamy, co poprzednio potem, ale po spełnieniu tych warunków robimy inną tablicą {{LinkPatrz|tab_stare}}, i tę tablicę robimy podobnie, i inicjujemy te same elementy też podobnie.
====== Uwzględnianie pozycji podanej w tablicy zebranych elementów ======
Tworzymy zmienną {{Code|ile_dodac_do_poziomu_artykulu}} {{Patrz|ile_dodac_do_poziomu_artykulu}} z drugiego elementu tablicy {{LinkPatrz|tablica_artykulow_zebranych}}, następnię tworzymy inną zmienną {{Code|ile_dodac_do_poziomu_artykulu_lub_nil}} {{Patrz|ile_dodac_do_poziomu_artykulu_lub_nil}}, co uwidaczniamy wzorem:
<syntaxhighlight lang="lua">
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
</syntaxhighlight>
Tą zmienną wykorzystamy do sformułowania {{LinkPatrz|tab_stare}}. {{Śródtekst|tekst=Tworzymy zmienną {{LinkPatrz|tab_stare}}, którą wsadzamy do tablicy {{LinkPatrz|tabela_rozdzial_artykulow2}} na pozycji {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}} przy pomocy funkcji {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.|uchwyt=__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|>{{=}}}} {{Code|2}} =====
Będziemy tutaj operowali, gdy parametr drugi zwracany z funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, wskazuje na nie artykuł książki, zatem ten rozdział jest właśnie dla tego przypadku.
====== Odkodowanie i przygotowanie zmiennych artykułu linku, jej nazwy, także kodu języka i projektu ======
* Gdy pierwszy element tablicy: {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest tabelką, wtedy do przetworzenia jego wykorzystujemy funkcję: {{LinkŚródtytuł|ParametrPierwszy}}.
* Dla drugiego takiego elementu z: {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, co jest nazwą linku, wtedy gdy nazwa linku normalnego, czy szablonowego, jest zakodowana, to ją odkodujemy, którego każdy jego element kod odkodujemy według fukcji: {{LinkŚródtytuł|RozwijanieNazwy}}, następnie z niej usuwamy znaki specjalne według: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, następnie usuwamy końcowe spacje i wewnątrz kolejne spacje zaastępujemy jedną spacją, co robimy według: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
* Dla trzeciego i czwartego takiego elementu z: {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, te elementy odkodujemy, następnie z nich usuwamy końcowe spacje, a wewnątrz kolejne spacje zastępujemy jedną, według tej samej funkcji, co powyżej.
====== Przygotowanie zmiennych, inicjowanie tablicy {{Code|tab_stare}} i wsadzanie jej do tablicy ogólnej {{Code|tabela_rozdzial_artykulow2}} ======
Dalej {{PobierzŚródtekst|tabela_rozdzial_artykulow2}}, także co {{PobierzŚródtekst|linia_artykokow}}, co wszystko robimy podobnie jak w rozdziale: {{LinkŚródtytuł|inicjacja_i_kompletowanie_zmiennych}}.
{{PobierzŚródtekst|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
==== Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach ====
Przedstawiamy tutaj ogólną definicję zmiennej {{LinkPatrz|tab_stare}}, które określają ogólnie jaką jego wersję użyć w poszczególnych punktach funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}. Ta wersja jest jedynie sformułowana dla artykułów w rozdziale, a nie dla rozdziałów, bo w tablicy, do której jest ona wsadzana przyjmuje ona możliwy numerek od "2" do "13", a nie również "1". Jej wersja ogólna:
<syntaxhighlight lang="lua">
local tab_stare=
{
---- Początek elementów alternatywnych
{
---- Początek wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[1], -- artykuł bez pełnej nazwy ksiązki, bez parametrów i nagłówka, bo ich nie posiadałna samym początku;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- artykuł bez pełnej nazwy książki, bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[2], -- nazwa linku artykułu normalnego, czy szablonowego;
---- Początek elementów alternatywnych dla przekierowania
---- Poczatek parametrów przekierowania
{
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
tablica_przekierowania[3], -- parametry przekierowania artykułu;
tablica_przekierowania[4], -- nagłówek przekierowania artykułu;
["LINK"]=true, -- zmienna świadcząca, że nazwa przekierowania artykułu jest z parametrami i nagłówkiem;
},
---- lub
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
---- Koniec parametrów przekierowania
tablica_przekierowania[1], -- tablica o definicji: {
nazwa_przestrzeni_strony_przekierowania, -- nazwa przestrzzeni nazw przekierowania artykułu;
nazwa_przestrzeni_ksiazki_strony_przekierowania, -- nazwa przestrzeni książki przekierowania artykułu;
nazwa_ksiazki_strony_przekierowania, -- nazwa książki orzekierowania artykułu;
true/nil, -- nil, gdy strona jest przekierowaniem, true, gdy strona główna jest taka, lub strona ma link do nieistniejącej strony w innej książce;
true/false, -- true, gdy przekierowanie wskazuje na artykuł w taj samej książce, false, gdy nie;
czy_przekierowanie), -- (true/false): true, gdy strona jest przekierowaniem, false jak nie, to strona główna książki, nil, w przeciwnym wypadkach;
};
---- lub
nil, -- dotycząca przekierowania artykułu, a tutaj strona nie ma przekierowania, więc: nil;
nil, -- dotycząca tablicy książki, na którą wskazuje przekierowanie, a tutaj nie ma tablicy, więc: nil;
---- Koniec elementów alternatywnych dla przekierowania
tab_pozycja_elementow_w_spisie_rzeczy[3], -- kod języka;
tab_pozycja_elementow_w_spisie_rzeczy[4], -- kod projektu;
tab_pozycja_elementow_w_spisie_rzeczy[5], -- adres artykułu bez przetworzenia w linku normalnym,czy szablonowym;
ile_dodac_do_poziomu_artykulu_lub_nil, -- parametr mający tylko wartości: 1, gdy do aktualnego poziomu musi być dodane jeden - ta wartość, tylko dotyczy artykułów należących do tej samej książki, lub: nil, gdy nic, czyli w pozostałych przypadkach;
tab_pozycja_elementow_w_spisie_rzeczy[6], -- "url", pozycja świadcząca, że to jest link zewnętrzny, a nil, gdy to jest normalny link;
},
---- lub
tab_pozycja_elementow_w_spisie_rzeczy[1], -- nazwa artykułu linku, która nie posiada, ani parametrów w sobie, a po nim nagłówka, lub bezpośrednio po nazwie;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- nazwa artykułu bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec elementów alternatywnych
{
#przedrostek_listy, -- poziom listy, w którym jest artykuł, dla artykułów w linii z listą, w innym wypadku dla artykułu znajdującego się w rozdziale dodatnim, czy ujemnym jest zero;
przedrostek_listy, -- przedrostek listy w postaci wzoru, który jest w nawiasie we wzorze do przechwytywaniem: "\n([;%*:#])", przeciwnie dla artykułów w rozdziale dodatnim ma wartość pustą;
tekstowy_przedrostek, -- numeracja dodatkowa w rozdziale dla artykułu, gdy nie ma takiej numeracji, bo nie da się jej wydzielić, to ma wartość pustą;
w_rozdziale, -- czy artykuł jest w rozdziale dodatnim normalnym, czy centrowanym znacznikowym lub szablonowym, wtedy "true", w przeciwnym wypadku: "false";
},
linia_artykokow, -- skompletowana linia z artykułem, dla którego jest pozycja: "tab_stare";
true/false, -- true, gdy nazwa artykułu pochodzi bezpośrednio od szablonu {{SpisTreści}}, a w przeciwnym wypadku ma wartość: false;
true/false, -- true, gdy artykuł pochodzi z tego samego podręcznika, przeciwnie: false;
---- Początek elementów alternaatywnych
Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2), -- który numer artykułu, w momencie wsadzenia do tabeli zbierania rozdziałów i w nich artykułów, nawet w rozdziale;
---- lub
nil, -- nil, wtedy gdy link jest tak sobie dodany, który nie należy do żadnego spisu, a po nim elementy jego z nagłówkiem natomiast należą;
---- Koniec elementów alternatywnych
};
</syntaxhighlight>
W powyższym {{Tag|syntaxhighlight|parametry=lang="lua"}}, dla elementu {{Code|<nowiki>---- lub</nowiki>}}, jest powiedziane, że są dostępne alternatywy, które są zawarte w tablicy, że wybieramy te, aby nie spowodować czysto podwójnej tablicy, aby każda tablica zawierały inne elementy, jak wiele, a nie jedną tablicę, jak i łańcuchy znaków, wartość nil, powoduje, że czy ma być taka tablica, ale nie podwójna, co to znaczy podowójna, tzn. tablica w sobie zawiera inną jedyną tablicę, a tak nie może być, a jak zawiera jedną tablicę, to musi posiadać inne nienilowe elementy.
== Funkcje tablicy transportu ==
=== {{Śródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}}{{Code|p.AnalizaNapisuWprowadzeniaTekstu}} ===
Funkcja przyjmuje jako parametr nieskompletowaną i nieprzetworzony tekst napisu wprowadzenia tekstu. On kompletujei przekształca go w odpowiedni sposób,aby otrzymać czysty tekst tytułu rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|rozdzial}} - ten tekst tytułu rozdziału, o którym mówimy,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa spisu treści, potrzebna do rozwijania adresów względnych,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy modułu {{Code|{{ld2|Szablonowe}}}}, która zawiera informacje na temat zakodowanego tekstu, calego artykułu, w tym również tych napisów,
* {{Code|tablica_danych_parametrow_szablonu_strony}} - tablica rozłożeń elementów składowych bazy szabonów i znaczników, i ewentualnie innych, elementów zbazowanego tekstu.
Funkcja korzysta z funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, funkcja ma zdefiniowaną pierwszą jej funkcję, która dla {{Code|obiekt {{=}} "SZABLON"}}, używamy pierwsze dwie tabelę, te tabele:
Pierwsza {{Patrz|szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}}, która służy do zamieniania szablonów na ich parametry, tutaj na jeden,jest tablica {{Code|{{sr|#p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={
["MDL:RozszerzonyLink"]=1,
["Kompletność"]="",
["Kompletność krótka"]="",
["Kompletność junior"]="",
["Książka"]="",
};
</syntaxhighlight>
Druga {{LinkPatrz|p.szablony_dozwolone_w_nazwach_linkowych}}, też służy do tego samego.
One służą do zamieniania wywołań szablonowych na odpowiednie ich zawartości parametrów określone przez numery parametrów tych elementów w tch tabelach. Jeżeli przy którym wywolaniu przy wykorzystaniu kolejnych tych tabel przy użyciu funkcji: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}, nastąpiło zamienienie, to funkcja pierwsza w: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, zakańcza się z tą wartością. A jeżeli nie to uruchamia się funkcj dodatków: {{Code|{{sr|#p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu|p=StronicowyParser/Rozdziały}}}}, a jeśli nastąpiło zastąpienie, to funkcja kompletowania się kończy z tą wartością.
Dalej jeżeli tak się nie stało, to uruchamia się funkcja parametrów,w którym wywołanie szablonowe jest rozkładane na nazwę szablonu, modyfikatory i parametry. Dalej jest spradzanie , czy jest to link inteligentny według funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, a gdy jest, to funkcja kończy swoje działania z nazwą tego linku lub jego adreesem wewnętrznym, a jeśli on nie jest tym, to sprawdza, czy są inne szablonowe linki, które podejrzewa się poprzez wywołanie funkcji: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoObiektu|p=StronicowyParser/Potrzebne}}}}, a jezelijest tym linkiem, to funkcja składania zwraca też jak poprzednio nazwę linku lub jego adres wewnętrzny, ewentualnie z dodatkiem. A gdy nie, to w innym przypadku sprawwdzane, czy to jest inny link wewnętrzny generowane przez szablony, która spradza funkcja tutaj: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli szablon jest tym linkiem, to kunkcja składania zwraca jego nazwę linkową.
A następnym krokiem jest sprawdzanie,czy nazwa szablonujest jednych z elementów z tablicy: {{Patrz|szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}, która ma ten element, te szablony wymienione w tej tablicy są po to, aby służyły do rozwijania przez JavaScript, są to elementy wikikodu, które są pracochłonne ze względu na ich skomplikowany kod, czy wikikod, nawet {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i dlatego ich się nie rozwija przez stronicowy parser {{Code|{{ld2|StronicowyParser}}}}, te nazwy szablonów są określone tablicą {{Code|{{sr|#p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={
["Cytuj"]=true,
["Cytuj stronę"]=true,
["Cytuj pismo"]=true,
["Cytuj odcinek"]=true,
["Cytuj książkę"]=true,
["Cytuj grę komputerową"]=true,
};
</syntaxhighlight>
I funkcja wtedy zwraca zkompletowany szablon bez rozwijania jego, pod warunkiemjeżeli jest tym szablonem o tej nazwę szablonu wywołującego.
Te powyżej elementy dla funkcji parametrów, w niej wartości są zwarcane do niej, a jeżeli ona przyjmuje wartość nienilową, to do funkcji składania zwracana jest jego wartość, a przeciwnie jest zwracane pierwszy parametr szablonu do niej.
A gdy dla elementów, jeśli nazwa obiektu jest: {{Code|obiekt {{=}} "NOWIKI"}}, {{Code|obiekt {{=}} "PRE"}} lub {{Code|obiekt {{=}} "ŹRÓDŁO"}}, znacznik jest rozkładany na czynniki pierwsze, a jeżeli nnie ma zawartości, to przez funkcję skłądania jest zwracana wartość pusta, a jeśli nie, to pewne znaki specjalne tagu {{Tag|nowiki}}, które mają w nim być zamienione na tekst, są zamieniane na kody {{Strong|HTML}}, co po zamienieniu ta ona jest zwracana.
A jeżeli wartość {{Code|obiekt}} jest nie równa: {{Code|MATH}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} lub {{Code|INNEPRE}}, wtedy z zawartości zmiennej {{Code|szablon}} są wykorzystanne funkcje z modułu {{Code|{{ld2|Specjalne}}}}, które w tej podanej zmiennej są usuwane z komentarze z: {{Code|{{sr|#p["UsuńKomentarze"]|p=Specjalne}}}}, zamieniane są linki zewnętrzne i wewnętrzne na ich nazwy lub adresy według: {{Code|{{sr|#p["ZamieńLinkiZewnętrzneNaTekst"]|p=Specjalne}}}} i {{Code|{{sr|#p["ZamieńLinkiWewnętrzneNaTekst"]|p=Specjalne}}}}. Są usuwane rozwinięte znaczniki szablonów stylów używając do tego celu: {{Code|{{sr|#p["UsuńSzablonyStylów"]|p=Specjalne}}}}. Są też usuwane znaczniki na podstawie: {{Code|{{sr|#p["UsuńZnaczniki"]|p=Specjalne}}}}. Z tekstu szablonu są usuwane normalne kategorie nieszablonowe: {{Code|{{sr|#p"UsuńKategorie"]|p=Specjalne}}}}. Są też usuwane z zawartości wywołania plików i interwiki z: {{Code|{{sr|#p["UsuńWywołaniaPlików"]|p=Specjalne}}}} i {{Code|{{sr|#p["UsuńInterwiki"]|p=Specjalne}}}}. Dalej z tego obiektu są usuwane znaki specjalne z: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}.
A gdy mamy do czynienia z innymi znacznikami, to są zwracane jest zamiast niego wartość pusta do funkcji kompletowania.
Dane z funkcji kompletowane są zwracane, które z niej są usuwane znaki specjalne z całości tekstu rozdziału: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, i znaki białe z końców tekstu i powtarzarzające się te znaki kolejne z wewnętrz są zamieniane na jedną spację, to się dzieje według funkcji: {{Code|{{sr|#p["UsuńZbędneBiałeZnaki"]|p=Specjalne}}}}.
Cały taki wynik operacji robione w funkcji w nagłówku są zwracane do niej, to jest, co uzyskujemy nazwa rozdziału w postaci przetworzonej.
=== {{Śródtytuł|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}{{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} ===
Opisane tutaj są podfunkcje, z których korzysta ta funkcja, co one robią, do czego są wykorzystane.
==== Opis funkcji ====
Fubkcja służy do zbierania nagłówków i z niej danych,tzn. linków normalnych i inteligentnych, a także są zbierane nagłówki z listy bez artykułów i do nich elementy podlisty z artykułami w postaci wywołań linkowych w niej. Tworzona jest specjalnie dla niegp tablica {{LinkPatrz|tab_stare}}, która w odpowiedni po przekształaceniach wsadzana jest do tablicy: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy dany spis treści dla książki dla jej artykułu korzystanego, dla innej książki, wtedy to artykuł niekorzystany,
* {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}} - jest to wewnętrzny adres książki głównego spisu treści,jest to taki adresm na który wskazuje przekierowanie innej książki,
* {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} - jest to funkcja, która zbiera informacje o aktualnym artykule, która jest spisem treści, w postaci nieprzetworzonej przez funkcje z modułu: {{Code|{{ld2|StronicowyParser/Rozdziały}}}}, opisanego w: {{Code|{{sr|Rozdziały|StronicowyParser - Rozdziały|p=StronicowyParser}}}}, ta funkcja kopiuje, np. tabele danych bazy modułu: {{Code|{{m|Szablonowe}}}}, tzn: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, i tabelę rozkładu elementów w niej na czynniki pierwsze, tzn.: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, co jest napisane w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, a w dokumentacji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}.
==== Funkcje lokalne ====
Funkcja ma w sobie też definicję funkcji lokalnych zdefiniowanej w tej funkcji tutaj opisywanej.
===== {{Śródtytuł|FunkcjaIteratoraTekstuZakodowego}}{{Code|FunkcjaIteratoraTekstuZakodowego}} =====
Funkcja służy do pomijania tego, co nie jest linkiem wewnętrznym, czy zewnętrznym, czyli oznaczone kodami: {{Code|LINKW}} lub {{Code|LINKZ}}, czy nawet szablonem linkuinteligentnego, czy innego służacego do generowania spisu treści, do tego celu również używa funkcji: {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}, oraz tego co nie jest w liście okreslonym wzorem {{Code|<nowiki>\n([#:*;]+)</nowiki>}} z mozliwym na początku tekstem, ale nie z kodami, w danej pozycji listy, lub co ewentualnie nie może być w możliwej liście, tzn.: {{Code|<nowiki>\n([#:*;]*)</nowiki>}}, ale wtedy musi tam być z tekstem, ale nie z kodami, na początku danej pozycji listy, nawet jeśli to nie jest lista, to też tak samo.
Jeżeli funkcja nie ma kodów linków wewnętrznych, czy to normalnych, czy szablonowych, to się zakańcza z wartością domyślną {{Code|nil}}, w przeciwnym wypadku do sprawdzenia używa do tego funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, do sprawdzania, czy to jest link lub licencji, a jeżeli ta funkcja zwraca wartość {{Code|true}}, to cała funkcja zwraca {{Code|nil}}. Jeżeli oba te sposoby nie dały rezultatu {{Code|true}}, to wtedy funkcja zwraca wartość pustą, czyli okreslonym ciągiem znakowym o szwerokości zerowej.
Funkcja ma w sobie dwie definicje funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}} i {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
====== {{Śródtytuł|PomijajLinkiOrazLicencje}}{{Code|PomijajLinkiOrazLicencje}} ======
Funkcja służy do sprawdzania, czy są odpowiednie szablony w kodzie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PomijajLinkiOrazLicencje(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}.
Funkcja sprawwdza, czy to są szablony spisu treści określone tablicą o kluczach, którymi są nazwy szablonów, z wartościami {{Code|true}}, czyli {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_licencji}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
czy to są szablony ozdobne woluminu, którego tablica: {{Code|{{sr|#p.szablony_ozdobne_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_ozdobne_stron_woluminu}}, jest podobnie zbudowana, co poprzednia:
<syntaxhighlight lang="lua">
p.szablony_ozdobne_stron_woluminu={
["MDL:RozszerzonyLink"]=true,
};
</syntaxhighlight>
A jeżeli to są te szablony, to funkcja zwraca wartość {{Code|true}}.
Jeżeli jeednak to nie są te szablony, należy użyć tablic, tak samo zbudowanej jak poprzednie, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>
lub innej, inaczej zbudowanej niż poprzednie, ale ważne, że ma wartość niefałszywą, czyli taką tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, jest:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Jak są te nazwy szablonów określone ich kluczami tych tablic, to funkcja zwraca wartość {{Code|true}}. A jeżeli jednak nie to funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, jest sprawdzane,czy to jest link inteligentny, nawet przekierowanie, jeżeli link taki jest, to funkcja zwraca wartość w tym wypadku {{Code|true}}. W przeciwnym wypadku, jak nie zwrócił tej wartości,bo taka nie jest nazwa szablonu, to funkcja nic nie zwraca.
====== {{Śródtytuł|CzySzablonLinkLubLicencja}}{{Code|CzySzablonLinkLubLicencja}} ======
Funkcja sprawdzająca za pomocą {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, nna podstawie parsowania tekstu szablonu funkcją: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, z parsowanym przechwytywanym typem obiektu {{LinkPatrz|obiekt}} równym {{Code|SZABLON}}. A jeżeli funkcja ta wspomniana w tekście zwróci {{Code|true}}, to funkcja taki obiekt policzy.
Jeżeli liczba policznych obiektów i znalezionych w wyniku parsowania jest większa od zera, to funkcja w nagłówku zwróci wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzySzablonLinkLubLicencja=function(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}}- jak w: {{LinkPatrz|szablon}}.
===== {{Śródtytuł|iteratorTekstuNaglowka}}{{Code|iteratorTekstuNaglowka}} =====
Jest to funkcja iteratora, którego funkcja zwracana (iterator) zwraca parametry, dla rozdziałów dodatnich i pozycji list.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function iteratorTekstuNaglowka()
... ---- Kod przed zwróceniem iteratora;
return function()
... ---- Ciało funkcji iteratora;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* Brak parametrów.
Iterator (funkcja zwracana przez funkcję w nagłówku) zwraca parametry w wyniku kolejnych wywołań:
<syntaxhighlight lang="lua">
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,true/false;
</syntaxhighlight>
Parametry zwracane przez iterator:
* {{Code|przedrostek_listy}} - przedrostek pozycji listy, dla rozdziałów dodatnich jest wartością pustą,
* {{Code|tekstowy_przedrostek}} - numeracja pozycji w liście lub w nagłówku dodatnim,
* {{Code|wyzyskane_wywolanie_szablonu_spis_tresci}} - jest to rozdział bez nueracji i przedrostka pozycji listy,
* {{Code|true/false}} - wartość {{Code|true}} świardczy o rozdziale dodatnim, a w przypadku innym funkcja zwraca zawsze wartość tą {{Code|false}} jako ostatni element zwracany.
Funkcja jest przykowana na rozdziałów dodatnich i pozycji list oraz innych linii, dla tego pierwszego funkcja zwraca:
<syntaxhighlight lang="lua">
return "","",wartosc,true;
</syntaxhighlight>
Gdzie {{Code|wartość}} jest to zawartość napisu wprowadzenia tekstu (rozdziału dodatniego).
W przypadku list oraz innych niż rozdziały dodatnie samo wyrażenie regularne {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest okreslone przez wyrażenie:
<syntaxhighlight lang="lua">
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
</syntaxhighlight>
Funkcja wykorzystuje funkcję: {{Code|{{sr|#p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu|p=StronicowyParser/Rozdziały}}}}, aby zamienić zawartość pozycji listy na rozdział bez numeracji i numerację, i dlatego ta funkcja zwraca te dwie wartości. Gdy funkcja jak nie znajdzie więcej linii (wyszukań), to zwraca wartość {{Code|nil}} mówiąca o zakończeniu iteracji iteratora, tzn. dane dla iteratora się zakończyły.
===== {{Śródtytuł|LiniaArtykulow}}{{Code|LiniaArtykulow}} =====
Funkcja dla szablonów kompletowania określonym tabelką: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_kompletowania_stron_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>
Rozdzziela linię na wiele obsługiwanych podlinii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaArtykulow(linia)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{Patrz|linia}} - pojedyncza przetworzona linia.
====== {{Śródtytuł|SzablonAnalizujKompletnosc}}{{Code|SzablonAnalizujKompletnosc}} ======
Funkcja sprawdza, czy danwe wywołania szablonu ma swoją jej nazwę szablonu, który jest szablonem kompletowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonAnalizujKompletnosc(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}.
====== Dalszy opis funkcji ======
Możliwe są dwie opcje, szablon kopletowania jest pierwszy, a drugi drugi, lub odwrotnie. Funkcja obsługuje te oba przypadki. Ona stawia przecinem dla obu wersji ustawień, jeśli potraktować układem link i szablon kompletowania, to wstawiany jest on pomiędzy tymi układami, aby rozdzielić linię, a w liście bez jego znaków pozycji, na elementy przy pomocy funkcji: {{LzLua|mw.text.split}}, z opcją jako drugi parametr, aby uwzględniał wyrażenia regularne {{Code|false}}. W tych rozdzielonych linią tą funkcją dzielącą ciąg znakowy na tabelę, kody {{Strong|HTML}} przecinka są zamieniane na zwykły przecinek.
Funkcja zwraca tabelę podzielonej linii na mniejsze podlinię, który można iterrować funkcją: {{Code|pairs}} lub {{Code|ipairs}}.
===== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} =====
Funkcja z parametrami, która uruchamia inną funkcję uruchamianą w: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, która wstawia tabelę {{LinkPatrz|tab_stare}}, do ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, ewentualnie do {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} na pozycję {{Code|numer_podtablicy_w_tablicy}} {{Patrz|numer_podtablicy_w_tablicy}}, a dokładniej na pozycję {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}} w funkcji {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
... ---- ciało funkcji.
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia}},
* {{Code|czy_linia_uwzgledniana}} {{Patrz|czy_linia_uwzgledniana}} - czy linię ma uwzględnić w powiększaniu poziomu o jeden dla artykułu.
Parametry zwracanej funkcji przez tę w nagłówku:
* {{Code|tabela_rozdzial_artykulow2}} - jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
* {{Code|numer_podtablicy_w_tablicy}} - jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}},
* {{Code|tab_stare}} - jaka w: {{LinkPatrz|tab_stare}}.
====== {{Śródtytuł|CzyZaliczac}}{{Code|CzyZaliczac}} ======
Funkcja sprawdza, czy z początkiem linii pozycji listy, bez przedrostka listy, jest z możliwym cudzysłowem, po którym następują liczby, litery, lub myślniki dolne, w takim pzypadku linia nie może składać się z nich, po ktorym występują znaki interpunkcyjne. Jeśli to sprawdzenie było pozytywne funkcja zwraca wartość logiczną odpwowiadającą {{Code|true}}, w przeciwnym wypadku jak {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyZaliczac()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak parametrów funkcji.
Funkcja zwraca informację, czy daną linię traktować jako rozdział, chodzi tu o pozycje list, a w przypadku rozdziałów dodatnich wiadomo, że one są właśnie, że rozdziałami.
====== Dalszy opis funkcji ======
Fubkcja sprawdza w funkcji zwracanej, czy rozważany rozdział jest centrowany danego artykułu, który siedzi pod rozdziałem lub w samym rozdziale, sprawdza, czy artykuł jest w rozdziale, sprawdza czy linia jest uwzględniana: {{Code|czy_linia_uwzgledniana}} {{LinkPatrz|czy_linia_uwzgledniana}}. Funkcja sprawdza, czy sekcja czy w {{LinkPatrz|tab_stare}}, czy istnieje element {{Code|tab_stare[2]}} {{Patrz|tab_stare[2]}} i dalszy {{Code|tab_stare[2][1]}} {{Patrz|tab_stare[2][1]}} - ten element jest to w: {{Code|tab_stare}} taki: {{Code|#przedrostek_listy}} {{Patrz|#przedrostek_listy}}, a jeżeli to sprawdzenie przeszło pozytywnie, który dla tego jest poziomem listy, lub zerowego rozdziału lub rozdziału dodatniego.
Dla każdej linii zmienna: {{Code|nowa_linia}} {{Patrz|nowa_linia}}, przyjmuje wartość {{Code|false}}, wtedy dla przypadku przeciwnego, tzn. gdy mamy rozdział i uwzględniamy artykuły w jednej linii, którym jest rozdział będacy pozycją listy, w zmiennej {{LinkPatrz|tab_stare}} jest ustawiany element {{Code|tab_stare[2][4]}} {{Patrz|tab_stare[2][4]}}, czyli zmienna {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}} zaczyna przyjmować wartość {{Code|true}}. Wsadzany jest wtedy do tablicy {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}} na pozycję {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, czyli to jest też {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, element {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Gdy {{LinkPatrz|nowa_linia}}, gdy jednak przyjmuje wartość {{Code|false}}, wtedy jeśli poziom rozdzialu istnieje i przedrostek listy {{LinkPatrz|#przedrostek_listy}} jest większy od zera, i istnieje wiele artykułów w pozycji liście, wtedy {{Code|ile>0}} lub funkcja {{LinkŚródtytuł|CzyZaliczac}} przyjmuje wartość odpowiadające prawdziwej, w taki przypadku zmiennej {{LinkPatrz|nowa_linia}} przydzielamy wartość {{Code|true}}, by dalsze artykuły można było wsadzić, do tablicy z nowym rozdziałem. Powiększamy numer rozdziału o jeden, tzn. {{Code|numer_rozdzialu_w_ksiazce}} {{Patrz|numer_rozdzialu_w_ksiazce}}, wtedy w zmiennej {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}} tabeli rozdziałów i w nich artykułów dla tej pozycji przydzielamy wartość równą tablicy pustej. Liczymy rozdział dla tego rozdział z artykułami, z funkcji {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}} liczymy napis rozdziału, wtedy do pierwszej pozycji tablicy utworzonej w {{LinkPatrz|tabela_artykulow}} dla miejsca {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, czyli {{LinkPatrz|tabela_rozdzial_artykulow}}, piszemy:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
</syntaxhighlight>
Gdzie {{Code|rozdzial_na_tekst}} {{Patrz|rozdzial_na_tekst}} to policzony rozdział, {{Code|-#przedrostek_listy}} {{Patrz|-#przedrostek_listy}} to poziom rozdziału ujemnego, i dlatego minus. {{Code|przedrostek_listy}} to znaki poczatkowe z listy {{LinkPatrz|wzor_do_linii_z_lista}}, a {{Code|tekstowy_przedrostek}} to numeracja tego rozdziału. Wartość {{Code|false}} to jest ze ten rozdział nie jest centrowany, a {{Code|linia}} {{LinkPatrz|linia}} to wyzyskana linia bez początku pozycji listy. Ustawiamy {{LinkPatrz|tab_stare[2][4]}} na wartość {{Code|true}} i element {{Code|tab_stare[6]}} {{Patrz|tab_stare[6]}} ustawiamy na zero. Tworzmy tablicę pustą na pozycję {{LinkPatrz|numer_podtablicy_w_tablicy}} tablicy {{LinkPatrz|tabela_rozdzial_artykulow}} i do tej tablicy dodajemy {{LinkPatrz|tab_stare}} za pomocą funkcji {{LzLua|table.insert}}.
A jeżeli nie jest tworzony nowy rozdział z listy w tabeli {{LinkPatrz|tabela_artykulow}}, to na pozycję {{LinkPatrz|numer_podtablicy_w_tablicy}} jest dodawany element {{LinkPatrz|tab_stare}}, również tak jest robione, gdy artykuły znajdują się w rozdziale dodatnim, tzn. równaniowej lub centrowanej, tzn. wtedy {{LinkPatrz|w_rozdziale}} przyjmuje wartość {{Code|true}}.
===== {{Śródtytuł|AnalizaLiniiObiekty}}{{Code|AnalizaLiniiObiekty}} =====
Za pomocą funkcji {{LinkŚródtytuł|LiniaArtykulow}} linia {{Code|linia_rozwazana}} {{Patrz|linia_rozwazana}} jest rozdzielana na wiele linii. To wiele linii w postaci tabeli, są iterowane od {{Code|k {{=}} 1}} do {{Code|k {{=}} #tab_linia}} gdzie {{Code|#tab_linia}} {{Patrz|#tab_linia}} jest to długość linii, tzn. liczba elementów numerowanych tablicy, tzn. od 1 do zwyż aż do apotkania najbliższej przerwy lub końca. Wtedy dla pojedyńczej literacji mamy {{Code|tab_linia[k]}} {{Patrz|tab_linia[k]}}.
Iterujemy po kodach dla linii {{LinkPatrz|tab_linia[k]}} przy pomocy funkcji: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|p.IteratorSzablonowyZakodowanegoTekstu}}, iteratorem {{Code|iterator2}} {{Patrz|iterator2}}.
Inicjujemy zmienną {{Code|tab_nieobslugiwane {{=}} nil}}, następnie iterujemy {{LinkPatrz|iterator2}} uzyskując w każdej iteracji {{Code|szablon}} {{LinkPatrz|szablon}}, {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
Gdy mamy do czynienia {{Code|SZABLON}} lub {{Code|LINKW}} albo {{Code|LINKZ}}, wtedy dla elementów tego pierwszego bierzemy tablicę: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}} dla elementu {{LinkPatrz|nazwa_szablonu}}.
Jeżeli ten element {{Code|tabela_spisu}} istnieje, element pierwszy {{Code|tabela_spisu[1]}} jest równy wartości {{Code|true}}, wtedy mamy do czynienia z szablonem {{s|SpisPozycja}}. Jej element {{Code|tabela_spisu["numer_link"]}} istnieje i jest równy {{Code|tyt}} {{Patrz|tyt}}. Iterujemy po kluczach i jego wartościach tego szablonu i sprawdzamy, który element jest równy właśnie tej wartości, a jeżeli jest taki, to dla elementów nie równych niemu, a właściwie w jego wartości iterujemy po kodach funkcją: {{LinkPatrz|p.IteratorSzablonowyZakodowanegoTekstu}}, dla tej wartości, w ten sposób zbieramy tablicę wielowymiarową najpierw po {{LinkPatrz|obiekt}}, póżniej po {{LinkPatrz|kod}}, którą nazwiemy {{Code|tab_nieobslugiwane}} {{Patrz|tab_nieobslugiwane}}, którego każda jej wartość jest równa {{Code|true}}. Ta tablica mówi dla jakich elementów ma nie zbierać w tablicy elementów w głównej tablicy rozdziałów i jego artykułach.
Dla elementu {{Code|tyt}} {{LinkPatrz|tyt}} tablicy parametrów przedrostek listy {{Code|przedrostek_listy}} ustawiamy na pusty, i liczmy numerację {{Code|tekstowy_przedrostek}} i zmienną {{Code|szablon}} {{LinkPatrz|szablon}} i ustawiamy zmienną {{Code|przerwij}} {{Patrz|przerwij}} na {{Code|true}}, aby dla tego szablonu nie zbierać elementów w tablicy rozdziałów i jego artykułów.
W przypadku przeciwnym dla {{Code|tabela_spisu}}, gdy ma wartość {{Code|false}}, wtedy mamy do czynienia z funkcją: {{s|SpisZw}}. Dla niej liczymy {{Code|przedrostek_listy}}, którą ustawiamy na pustą wartość. A {{Code|tekstowy_przedrostek}} liczmy uzyskując parametr o kluczu {{Code|tabela_spisu["numer"]}}, którym jest parametr o numerze {{Code|1}} i {{LinkPatrz|szablon}}, który liczmy z parametrów szablonu o kluczu {{Code|tabela_spisu["link"]}}, którym jest numer {{Code|2}}. Ustawiamy tutaj zmienną {{LinkPatrz|przerwij}} na wartosć {{Code|true}}.
====== {{Śródtytuł|CzyObslugiwane}}{{Code|CzyObslugiwane}} ======
Funkcja sprawdzająca, które elementy są obsługiwane, jeśli istnieje tablica {{LinkPatrz|tab_nieobslugiwane}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzyObslugiwane=function()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak parametrów.
====== Dalszy opis funkcji ======
Sprawdzany jest warunek:
<syntaxhighlight lang="lua">
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
</syntaxhighlight>
Jeżeli jest on spełniony, wtedy wywołujemy funkcję: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, później dla:
<syntaxhighlight lang="lua">
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
</syntaxhighlight>
Sprawdzamy, czy jest zebrana licencja z autorem według zmiennej {{Code|licencja_z_autorem}} i sprawdzamy, czy {{LinkPatrz|szablon}} jest szablonem, jeżeli jest, to ona przyjmuje wartość odpowiadająca prawdziwej, przeciwnie fałszywej.
Jeżeli ten pierwszy warunek jest niespełniony, to tylko liczymy to samo coostatnio.
Następnie dla warunku, który musi być spełniony:
<syntaxhighlight lang="lua">
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
</syntaxhighlight>
Dla parametrów szablonu, liczymy jego parametry o kluczach, tzn. {{Code|Autor}}, {{Code|Ukończone szkoły}}, {{Code|Email}}, {{Code|Dotyczy}}, {{Code|Licencjonowanie}}, {{Code|Umowa prawna}} i {{Code|Konsekwencje}}, którego wartości przydzielamy do odpowiednich zmiennych. Każdą z tych zmiennych kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, i rozwijamy funkcją: {{LzLua|frame:preprocess}}. A dla elementu istniejącego {{Code|Autor}} piszemy zmienną {{Code|licencja_z_autorem}}, któremu przydzielamy wartość {{Code|false}}.
Te zmienne szablonu {{s|Licencja}} zbieramy natomiast w tablicy {{Patrz|tabela_licencji_spisu_tresci}}, dane dotyczące licencji, więc:
<syntaxhighlight lang="lua">
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
</syntaxhighlight>
Co później przerywamy pętle po {{LinkPatrz|iterator2}} instrukcją {{Code|break}}.
==== Dalszy opis funkcji ====
Ściągamy tekst, tabelę bazy i tabelę parametrów strony o nazwie {{Code|nazwa_modulu}}, przy pomocy funkcji: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, według:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Uruchamiamy funkcję {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{LinkPatrz|__FUNKCJA_ZBIERANIA_DANYCH}}, jeżeli istnieje.
Dalej wywołujemy funkcję: {{Code|{{sr|#p.IterTekst|p=StronicowyParser/Rozdziały}}}}, w celu znalezienia tekstu {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} i iteratora {{Code|iterator}} {{Patrz|iterator}} po napisach wprowadzenia tekstu rozdziałów i ich zawartości rozdziałów i na podstawie:
<syntaxhighlight lang="lua">
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,
__FUNKCJA, ---- funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość;
__FUNKCJA2, ---- funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału);
__FUNKCJA_ANALIZA_SPISU ---- funkcja do analizy i modyfikacji tekstu (może zwracać wartość: nil) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: IterTekst, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: SpisTreści, co jest uwidocznione w module: Moduł:StronicowyParser/SpisTreści;
);
</syntaxhighlight>
Opis parametrów zwracanych:
* {{Code|iterator}} {{Patrz|iterator-IterTekst}} - iterator po rozdziałach i jego zawartościach,
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu-IterTekst}} - tekst przteworzony rozdziału.
Odczytujemy tabelę: {{LinkPatrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} i dalej {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}} o definicji:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Robimy kopię tych tabel i przyłączamy do metatabeli: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, przy pomocy funkcji: {{LzLua|setmetatable}}, aby nie odrózniać tych rozdziałów ze względu na wielkość liter i polskie znaki.
Inicjiujemy zmienną: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, wartością: {{Code|1}}, aby zbierać po kolei artykuły ze poszczególnego pojedynczego spisu treści.
Ustawiamy maksymalny rozmiar rozdziału zerowego na {{Code|50}}, w zmiennej {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}, według:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=50;
</syntaxhighlight>
===== {{Śródtytuł|AnalizaRozdzialu}}{{Code|AnalizaRozdzialu}} =====
Jest to funkcja do zbierania danych z pojedynczgo rozdziału o pewnej linii, inicjowana z jego parametrami, także tekstem rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|rozdzial}} {{Patrz|rozdzial}} - jest to tekst rozdziału,
* {{Code|linia_rozdzialu}} {{Patrz|linia_rozdzialu}} - jest to linia z rozdziałem,
* {{Code|text}} {{Patrz|text}} - jest to tekst rozdziału o pewnym napisie wprowadzenia tekstu,
* {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}} - jest to poziom danego rozdziału,
* {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} - początek pozycji listy rozdziałów mechanizmu {{Strong|MediaWiki}},
* {{Code|numeracja}} {{Patrz|numeracja}} - numeracja rozdziału,
* {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} - czy dany rozdział jest centrowany.
Tworzymy tabelę: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jeżeli nie istnieje, z pustą tablicą, a później dla elementu {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, jeżeli też go nie ma, to też pustą tablicą. Dalej liczymy napis wprowadzenia tekstu rozdziału dodatniego funkcją: {{LinkŚródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}} i uwzględniamy je w tabeli rozdziałów dla danego rozdziału pod wartością {{Code|tabela_rozdzial_artykulow[1]}}, w sposób:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
</syntaxhighlight>
Dalej wprowadzamy zmienną: {{Code|czy_spis_rzeczy_napis_wprowadzenia_tekstu}} {{Patrz|czy_spis_rzeczy_napis_wprowadzenia_tekstu}}, mówiącą teraz rozpatrujemy rozdziały i artykuły w ramach spisu treści o nagłówkach typu {{Code|Spis treści}}, czy {{Code|SPIS RZECZY}}. Jeżeli wyszliszmy po za to, to ta zmienna wtedy przyjmuje wartość fałszywą, a definicja inicjacji tej zmiennej jest:
<syntaxhighlight lang="lua">
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
</syntaxhighlight>
Gdzie:
* {{Code|poziom_rozdzialu}} - jak w: {{LinkPatrz|poziom_rozdzialu}},
* {{Code|czy_jest_spis_tresci}} {{Patrz|czy_jest_spis_tresci}} - czy jesteśmy w spisie treści,
* {{Code|dalej_nie_rozwazaj_spis_tresci}} {{Patrz|dalej_nie_rozwazaj_spis_tresci}} - zmienna mówiąca, że teraz jesteśmy po za spisem treści.
Jeżeli jesteśmy w spisie, to zawsze są uwzględniane artykuły rozdziału, bo jest ustawiona zmienna: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}} na {{Code|true}}, a po za na {{Code|nil}}.
Funkcja jest przyszykowana jest dla jednego spisu treści, o ściśle określonym specjalnym napisie wprowadzenia tekstu, w danym spisie na stronie.
Uruchamiamy iterator używając funkcji lokalnej {{LinkŚródtytuł|iteratorTekstuNaglowka}}, według wywołania:
<syntaxhighlight lang="lua">
local iterator=iteratorTekstuNaglowka();
</syntaxhighlight>
Ustawiamy zmienną {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, aby wliczał lub nie, pewne artykuły rozdziału według:
<syntaxhighlight lang="lua">
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
</syntaxhighlight>
Iterujemy otrzymanym ostatnio iteratorem, uzyskując kolejno zmienne: {{Code|przedrostek_listy}} {{LinkPatrz|przedrostek_listy}}, {{Code|tekstowy_przedrostek}} {{LinkPatrz|tekstowy_przedrostek}}, {{Code|linia}} {{LinkPatrz|linia}} i {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}.
Dla rozdziałów, które nie sa poziomami z listą, sprawdzamy, czy to jest rozdział zerowy przy pomocy funkcji: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, i sprawdzamy, czy on przekracza rozmiar {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}, jeżeli jest tym rozdziałem i nie przekracza pewnego rozmiaru, to to jest rozdział traktowany jako zerowy niepomijany rozdział zerowy, wtedy ustawiamy zmienną {{Code|nie_pomijaj_tego_rozdzialu}} {{Patrz|nie_pomijaj_tego_rozdzialu}} na {{Code|true}}.
Gdy taki rozdział nie pretenduje do zerowych, to sprawdzamy funkcją: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|p=StronicowyParser/Rozdziały}}}}, czy ten rozdział pominąć, a jeżeli ona przyjmuje wartość odpowiadającej fałszywej, czyli {{Code|false}}, wtedy ustawiamy zmienną: {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, na taką samą wartość jak poprzednio.
Dla rozdziałów innych ta wartość przyjmuje postać {{Code|false}}.
Dla rozdziałów, które nie są pomijane, wtedy zmienna {{LinkPatrz|nie_pomijaj_tego_rozdzialu}} przyjmuje wartość {{Code|true}}, w takim przypadku wchodzimy do funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami|p=Szablonowe}}}}, wtedy dla linków szablonowych sprawdzamy, czy to są linki określone tablicami: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy}}, {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}} lub ewentualnie funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}.
Innym sposobem sprawdzania, czy to jest szablon linkowy jest tablica: {{LinkPatrz|p.szablony_kompletowania_stron_woluminu}} lub {{LinkPatrz|p.szablony_licencji}}.
Jezeli to jest szablon linków, wtedy jest zwracana wartość: {{Code|return true,obiekt,kod}}, w przeciwnym wypadku: {{Code|return false,obiekt,kod}}.
Innym sposobem liczenia, czy to jest link, to wtedy może byc to link normalny {{Code|LINKW}}, który można sprawdzić funkcją: {{Code|{{sr|#p["CzyLinkWewnętrzny"]|p=Specjalne}}}}, wtedy jest zwracane {{Code|return true,obiekt,kod}}.
Link też może być zewnętrzny, wtedy to jest: {{Code|LINKZ}}, wtedy funkcja zwraca wartość: {{Code|return true,obiekt,kod}}.
Następnie dla linii {{Code|linia_rozwazana}} {{LinkPatrz|linia_rozwazana}}, co na podstawie tego liczymy, czy daną linię nie uwzględnić, w obliczeniach według schematu:
<syntaxhighlight lang="lua">
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
</syntaxhighlight>
Co następnie jest ustawiana {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}} na wartość {{Code|false}}.
W obliczeniach raz uwzględniamy funkcję: {{LinkŚródtytuł|AnalizaLiniiObiekty}}, w ostatniej omawianej pętli, schematycznie:
<syntaxhighlight lang="lua">
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
</syntaxhighlight>
===== Dalsza część funkcji =====
Bierzemy zakodowany tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu-IterTekst}}, i po nim iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}, wtedy iterujemy po parametrach:
<syntaxhighlight lang="lua">
local parsuj_rozdzialami=nil; ---- ta zmienna służy na wypadek, gdy by nie była żadnych rozwazanych rozdziałów;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---- za każdym razem jest uruchamiana funkcja: AnalizaRozdzialu, przy rozważanym rozdziale;
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
---- oznacz zmienną: parsuj_rozdzialami, wartością; true, a póżniej jąnie inicjuj;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
</syntaxhighlight>
Parametry zwracane przez iterator {{LinkPatrz|iterator-IterTekst}}:
* {{Code|rozdzial_tab}} {{Code|{{=}}}} {{Code|<nowiki>{ [1] = rozdzial, [2] = linia_rozdzialu, }</nowiki>}} - tabela składająca się z dwóch elementów:
** {{Code|rozdzial}} - jak w: {{LinkPatrz|rozdzial}},
** {{Code|linia_rozdzialu}} - jak w: {{LinkPatrz|linia_rozdzialu}},
* {{Code|text}} - jak w: {{LinkPatrz|text}},
* {{Code|poziom_rozdzialu}} - jak w: {{LinkPatrz|poziom_rozdzialu}},
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu}},
* {{Code|numeracja}} - jak w: {{LinkPatrz|numeracja}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany}}.
Gdy nie napotkano żadnego rozważanego rozdziału, wtedy: {{Code|parsuj_rozdzialami}}, przyjmuje wartość {{Code|nil}}, w takim razie uruchamiana jest funkcja:
<syntaxhighlight lang="lua">
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
</syntaxhighlight>
Funkcja zwraca parametry inaczej, gdy artykuł, do którego należy książka jest korzystany, a inaczej, jeśli nie. W takim razie możemy zwracać na dwa sposoby:
<syntaxhighlight lang="lua">
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
</syntaxhighlight>
Przy artykułach korzystanych, co jest określone zmienną: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, tabelę: {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, przy jego spisach treści w książkach, do której należy ten artykuł, zwracana jest jako wartość przeważnie jako nierówna {{Code|nil}}, a dla artykułów z innych książkach, ta wartość już jest taka, tzn. przyjmuje wartość {{Code|nil}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n53rtx5bmmdnenx2ynb820ouxi0dcrl
Wikibooks:Moduły/StronicowyParser/informacje
4
63526
551524
542629
2026-08-12T02:14:38Z
Persino
2851
/* Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę */
551524
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}, w przeciwieństwie do: {{Code|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
Moduł ładuje funkcję z modułu {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest twrzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return nil;
</syntaxhighlight>
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lukrjawqx46t3mhulenj91nqqsc75lh
551526
551524
2026-08-12T02:32:12Z
Persino
2851
/* Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę */
551526
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}, w przeciwieństwie do: {{Code|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
Moduł ładuje funkcję z modułu {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest twrzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mbj24u70ie5ufuuwb3can7cgwwqk5rq
551527
551526
2026-08-12T02:40:15Z
Persino
2851
/* Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę */
551527
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}, w przeciwieństwie do: {{Code|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
Moduł ładuje funkcję z modułu {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest twrzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
Ta funkcja przeszukuje, czy moduł jest w trakcie ładowania, jeżeli nie jest, to jest ładowane: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, w przeciwnym wypadku, jest ładowany na podstawie elementu: {{Code|self}} {{LinkPatrz|self|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, ładując funkcję: {{LinkŚródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}.
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k47q8g1mccya452lm7y6krgbpieb733
551528
551527
2026-08-12T02:43:55Z
Persino
2851
/* Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę */
551528
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}, w przeciwieństwie do: {{Code|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
Moduł ładuje funkcję z modułu {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest twrzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
Ta funkcja przeszukuje, czy moduł jest w trakcie ładowania, jeżeli nie jest, to jest ładowane: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, w przeciwnym wypadku, jest ładowany na podstawie elementu: {{Code|self}} {{LinkPatrz|self|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, ładując funkcję: {{LinkŚródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, informacje o danej stronie wraz z nią skojarzonymi stronami.
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fernc1ib13fl5nlnpqispsnk2ft4un0
551529
551528
2026-08-12T02:49:36Z
Persino
2851
/* Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę */
551529
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}, w przeciwieństwie do: {{Code|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
* Moduł ładuje głównie funkcję z modułu: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, o nazwie: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest tworzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
Ta funkcja przeszukuje, czy moduł jest w trakcie ładowania, jeżeli nie jest, to jest ładowane: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, w przeciwnym wypadku, jest ładowany na podstawie elementu: {{Code|self}} {{LinkPatrz|self|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, ładując funkcję: {{LinkŚródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, informacje o danej stronie wraz z nią skojarzonymi stronami.
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sm9afl8chdt17n89b4hdalzdwerfbj6
551530
551529
2026-08-12T02:55:27Z
Persino
2851
/* Ładowanie bazy danych strony */
551530
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.loadData|b=tak}}}}, w przeciwieństwie do: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=require|b=tak}}}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
* Moduł ładuje głównie funkcję z modułu: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, o nazwie: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest tworzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
Ta funkcja przeszukuje, czy moduł jest w trakcie ładowania, jeżeli nie jest, to jest ładowane: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, w przeciwnym wypadku, jest ładowany na podstawie elementu: {{Code|self}} {{LinkPatrz|self|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, ładując funkcję: {{LinkŚródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, informacje o danej stronie wraz z nią skojarzonymi stronami.
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kge0i8red8iaesj5iv7jkdwx5xfxym8
551531
551530
2026-08-12T02:59:27Z
Persino
2851
/* Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę */
551531
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.loadData|b=tak}}}}, w przeciwieństwie do: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=require|b=tak}}}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
* Moduł ładuje głównie funkcję z modułu: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, o nazwie: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest tworzona raz na całą stronę.
Funkcja jest wywoływana w funkcji, na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
Ta funkcja przeszukuje, czy moduł jest w trakcie ładowania, jeżeli nie jest, to jest ładowane: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, w przeciwnym wypadku, jest ładowany na podstawie elementu: {{Code|self}} {{LinkPatrz|self|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, ładując funkcję: {{LinkŚródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, informacje o danej stronie wraz z nią skojarzonymi stronami.
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
obdwshlct902zdhw2g9iguz2vdnp1kx
551540
551531
2026-08-12T03:35:39Z
Persino
2851
551540
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{LzLua|mw.loadData}}, w przeciwieństwie do: {{LzLua|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
* Moduł ładuje głównie funkcję z modułu: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, o nazwie: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest tworzona raz na całą stronę.
Funkcja jest wywoływana w funkcji, na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local nazwa_modulu="Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron";
local pakiet_modul=package.loaded[nazwa_modulu] or package.preload[nazwa_modulu] or package.loaders[nazwa_modulu];
if(not pakiet_modul)then
local stronicowyparser_zbieraniedanychstron_modul=require(nazwa_modulu);
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
end;
return pakiet_modul:PobieranieInformacjiRamkiRozpatrywanejStrony();
</syntaxhighlight>
Ta funkcja przeszukuje, czy moduł jest w trakcie ładowania, jeżeli nie jest, to jest ładowane: {{LinkŚródtytuł|p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, w przeciwnym wypadku, jest ładowany na podstawie elementu: {{Code|self}} {{LinkPatrz|self|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, ładując funkcję: {{LinkŚródtytuł|p.PobieranieInformacjiRamkiRozpatrywanejStrony|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}, informacje o danej stronie wraz z nią skojarzonymi stronami.
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
27x2xiub35il3j6tjrr9hsbokwf6do3
Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom II
4
63661
551541
547032
2026-08-12T03:39:29Z
Persino
2851
551541
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
=== {{Śródtytuł|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}}{{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} ===
Funkcja sprawdzająca, czy na stronie z głównym spisem treści lub w innych spisach treści podanych w: {{s|Układ autonawigacji}} {{Patrz|Układ autonawigacji}}, na jednych ze stron: {{s|NawigacjaSpecjalna/Nawigacja/}} {{Patrz|NawigacjaSpecjalna/Nawigacja/}} (te ustawienia są wykorzystywane przez {{s|Autonawigacja}} {{Patrz|Autonawigacja}}), dotyczącej danej książki, znajduje się artykuł o nazwie znajduje, z dokładnością do wielkości liter, artykuły o nazwach według tabeli: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_artykulow}} - tabela wielowymiarowa rozdziałów i do nich artykułów.
Kopia tej tabeli jest połączona z metatabelką: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=StronicowyParser/obiekty}}}} {{Patrz|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter}}, przy pomocy funkcji: {{LzLua|setmetatable}}.
Iterujemy dla elementach tabeli {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}, a póżniej sprawdzamy, czy artykuł znajduje się w dozwolonych rozdziałach jako artyuły książki: {{Code|tab_lista[2]}} {{Patrz|tab_lista[2]}}, iterując po jego elementach, wtedy jednych z jego wartości, o pewnym numerze, bierzemy element: {{Code|artykul_w_bazie_element}} {{Patrz|artykul_w_bazie_element}}, według kodu:
<syntaxhighlight lang="lua">
---- Bierzemy jego pierwszy element "tab_stare", bo: "artykul_w_bazie_element", jest tabelką;
local artykul_w_bazie=artykul_w_bazie_element[1];
---- Sprawdzamy, czy element, zawiera klucz o nazwie "["LINK"]=true";
local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
---- Wybieramy w zależnosci, czy to jest tabelka, czy nie bez tego: "["LINK"]=true";
artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
---- Jeżeli ten element jest tabelką i posiada: "["LINK"]=true", to zwracamy pierwszy element, a jeżeli nie to sam element;
local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
</syntaxhighlight>
Powyższy kod, zawiera funkcje z: {{Code|{{ld2|StronicowyParser/Potrzebne}}}}, tzn.: {{Code|{{sr|#p.CzyTabelaStronyWoluminuSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, która sprawdza, czy element jest tabelka, i czy ma klucz: {{Code|LINK}}, wtedy zwraca wartość: {{Code|false}}, w przeciwnym wypadku, zrzuca wynik czy to jest owo (tabelka), i {{Code|{{sr|#p.TylkoNazwaStronyWoluminuZTabeliPublikacji|p=StronicowyParser/Potrzebne}}}}, który sprawdza, czy to jest tabelka, czy posiada klucz: "klucz", a jeżeli tak, to zwraca pierwszy element tej tabeli, a jeżeli nie, to zwraca to nawet, gdy by nie była tabelką, a jak jest nią, to nie posiada klucza: {{Code|LINK}}. Aby zrozumieć te funkcje skorzystaj zdefinicji: {{Code|tab_stare}} {{Patrz|tab_stare}}, na stronie: {{Code|{{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}}}}.
Następnie sprawdzamy, czy to jest ten spis treści zagwarantowany według: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a jeżeli tak, to funkcja zrzucza wartość: {{Code|artykul_bez_naglowka_w_bazie}} {{Patrz|artykul_bez_naglowka_w_bazie}} - jest to nazwa artykułu spisu treści o określonej nazwie bez nagłówka, a jeżeli mimo to nie znaleziono nic, to nic nie zwraca.
=== {{Śródtytuł|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} ===
==== Opis funkcji ====
Funkcja zrzucza wynik z jednego spisu rzeczy, którym jest strona główna książki, lub ewentualnie skojarzony z nią, spis, który jest artykuł o nazwie jednych z: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, z dokładnością do wielkości znaków. Funkcja też sprawdza stronę z {{s|Układ autonawigacji}}, czyli strony znajdujące się katalogu: {{s|NawigacjaSpecjalna/Nawigacja/}}, tam sprawdza, jakie spisy do niego należą i je liczy, też sprawdza jakie artykuły do niego należą. W ten sposób mamy utworzony spis treści, który po artykułach książki możemy nawigować za pomocą odpowiednich funkcji autonawigacji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,__FUNKCJA_SPISU_RZECZY,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zbienna obiektowa funkcji,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - kolejno nazwa przestrzeni nazw,nazwa przestrzeni książki i nazwa książki,
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - {{Code|true}}, gdy artykuł dany jest korzystamy, czy aktualnie korzystamy z niego za pomocą przeglądarki,
* {{Code|__FUNKCJA_SPISU_RZECZY}} {{Patrz|__FUNKCJA_SPISU_RZECZY}} - funkcja wykorzystywana w: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}, w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, jest to funkcja do różnych celu, w tym przypadku służy, to przypisysania, na które wskazuje przekierowanie, danych z przekierowania do strony, którym jest to właśnie przekierowanie,
* {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} - funkcja opisana w rozdziale: {{Code|{{sr|#p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy|p=StronicowyParser/SpisTreści/Tom I}}}}, w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
==== Fukcje lokalne ====
===== {{Śródtytuł|Spis}}{{Code|Spis}} =====
Funkcja służy do ustawiania poszczególnych spisów treści, jeżeli książka ma ich kilka. Ona służy jedynie do jenego spisu, a nie wszystkich razem, tylko oddzielnie.
Definicja skrótwa funkcji:
<syntaxhighlight lang="lua">
local function Spis(tablista_artykulow,spis_tresci,tab_inne_spisy,nazwa_glownego_spisu,numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablista_artykulow}} {{Patrz|tablista_artykulow}} - tabela rozdziałów i do nich artykułów,
* {{Code|spis_tresci}} {{Patrz|spis_tresci}} - jeżeli strona nie jest przekierowaniem, to jest wtedy łańcuch znakowy opisujący dany spis, a jeżeli wlaśnie jest, wtedy jest to tablica, coś w rodzaju {{Code|<nowiki>{przekierowanie_spisu_tresci,spis_tresci,}</nowiki>}}:
** {{Code|przekierowanie_spisu_tresci}} {{Patrz|przekierowanie_spisu_tresci}} - strona spis treści, która jest jednocześnie przekierowaniem,
** {{Code|spis_treści}} - jak w: {{LinkPatrz|spis_tresci}}, tylko, że tylko łańcuch znakowy, na który wskazuje przekierowanie,
* {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} - tabela innych spisów książki, jeżeli istnieją,
* {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}} - nazwa głównego spisu treści, zwykle jest to strona główna książki,
* {{Code|numer}} {{Patrz|numer}} - numer, który liczmy, do którego dodajemy jeden.
Parametry zwracane:
<syntaxhighlight lang="lua">
return tablista_artykulow,tab_inne_spisy,numer;
</syntaxhighlight>
Opis parametrów zwracanych:
* {{Code|tablista_artykulow}} - jak w: {{LinkPatrz|tablista_artykulow}},
* {{Code|tab_inne_spisy}} - jak w: {{LinkPatrz|tab_inne_spisy}},
* {{Code|numer}} - jak w: {{LinkPatrz|numer}}.
Gdy zmienna: {{LinkPatrz|tablista_artykulow}}, istnieje, i ma niepustą tablicę, wtedy ta funkcja wtedy faktycznie coś robi, w przeciwnym wypadku zwraca tylko wynik.
Liczmy spis treści, na który wskazuje przekierowanie, gdy strona nie jest nim, to sama strona ze wskazania:
<syntaxhighlight lang="lua">
local czy_spis_tresci_table=parametry_modul.TypeTable(spis_tresci);
local spis_tresci_strona=czy_spis_tresci_table and spis_tresci[1] or spis_tresci;
</syntaxhighlight>
Zmienna: {{Code|spis_tresci_strona}}, to jest nic innego jak: {{LinkPatrz|przekierowanie_spisu_tresci}}, lub tylko jest łańcuchem znakowym, według: {{LinkPatrz|spis_tresci}}.
Policzmy zmienną:{{Code|tab_element}} {{Patrz|tab_element}}:
<syntaxhighlight lang="lua">
local tab_element={[1]={((not spis_tresci) and "Główny spis treści" or ("Spis treści - "..spis_tresci_strona)),{((spis_tresci) and 1 or nil),nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
</syntaxhighlight>
Jeżeli pierwszy rozdział danego spisu nie ma numeracji, tzn. wtedy liczymy element: {{Code|tablista_artykulow[1][1][2][1]}}, to wtedy jego pozycje artykularne {{Code|numer > 1}} zapisujemy na sam koniec w tablicy {{LinkPatrz|tab_element}}. Następnie usuwamy pierwszy rozdział z artykułami przy pomocy funkcji: {{LzLua|table.remove}}.
Poziomy rozdziałów powiększamy o jeden aż do napotkania pierwszego rozdziału centrowanego, wtedy przerywamy pętle.
Następnym podejściem jest dodanie przed pierwsza pozycją elementu: {{LinkPatrz|tab_element}}, do tablicy: {{LinkPatrz|tablista_artykulow}}}, przy pomocy funkcji: {{LzLua|table.insert}} {{Patrz|table.insert}}.
Jeżeli spis treści {{LinkPatrz|spis_tresci}} istnieje, wtedy robimy dalsze operacje. Jeżeli tablica: {{LinkPatrz|tab_inne_spisy}}, nie istnieje to ją tworzymy, wtedy {{LinkPatrz|spis_tresci}}, przy pomocy: {{LinkPatrz|table.insert}}, dodajemy do {{LinkPatrz|tab_inne_spisy}}. Następnie jeżeli nie istnieje element {{Code|tablista_artykulow[1][2]}} {{Patrz|tablista_artykulow[1][2]}}, związany artykułami należącymi do rozdziału, to go tworzymy, wtedy tworzymy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, w postaci:
<syntaxhighlight lang="lua">
local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{0,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/" ..spis_tresci_strona.."]]",false,};
</syntaxhighlight>
To {{LinkPatrz|tab_stare}} jest opisane w module: {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|Spis treści - Tom I}}.
To dodajemy na pierwszą pozycję do zbioru artykułów, do elementu {{LinkPatrz|tablista_artykulow[1][2]}}, na pierwszą pocycję, przy pomocy funkcji: {{LinkPatrz|table.insert}}.
Następnym krokiem jest zwracanie przez funkcję zmiennych powyżej powiedzianych.
===== {{Śródtytuł|InneSpisy}}{{Code|InneSpisy}} =====
Funkcja służy do uzsykiwania elementów danego spisu, ustawiania go odpowiedniego i wstawianie go do ogólnego spisu opisujące wszystkie spisy w danej książce.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablista_artykulow}} - jak w: {{LinkPatrz|tablista_artykulow}},
* {{Code|tab_inne_spisy}} - jak w: {{LinkPatrz|tab_inne_spisy}},
* {{Code|spis_tresci}} - jak w: {{LinkPatrz|spis_tresci}},
* {{Code|numer}} - jak w: {{LinkPatrz|numer}}.
Uzyskujemy elementy spisu z wywołania dla pojedynczego spisu treści:
<syntaxhighlight lang="lua">
local tablista_artykulow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
</syntaxhighlight>
Jeżeli zmienna: {{Code|tablista_artykulow_iter}} {{Patrz|tablista_artykulow_iter}} istnieje i jest tablicą, to ją przetwarzamy przy pomocy funkcji: {{LinkŚródtytuł|InneSpisy}}, w sposób:
<syntaxhighlight lang="lua">
tablista_artykulow_iter,tab_inne_spisy,numer=Spis(tablista_artykulow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,},tab_inne_spisy,nil,numer);
</syntaxhighlight>
Tak otrzymanną zmienną: {{LinkPatrz|tablista_artykulow_iter}}, iterujemy po elementach wsadzając ją do tablicy na sam koniec: {{LinkPatrz|tablista_artykulow}}, a jak tak tablica nie istnieje, to ją tworzymy z pustą tablicą, i wtedy wykonujemy tą operację. To wsadzanie wykonujemy za pomocą funkcji: {{LinkPatrz|table.insert}}.
Na samym końcu zwracamy wiele elementów:
<syntaxhighlight lang="lua">
return tablista_artykulow,tab_inne_spisy,numer;
</syntaxhighlight>
===== {{Śródtytuł|SpisRzeczy}}{{Code|SpisRzeczy}} =====
Funkcja przygotowuje aktualny spis tresci, by dodać do niego nowy spis, jeżeli on istnieje, jako artykuł w spisie o nazwach {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SpisRzeczy(tabela_artykulow,tab_inne_spisy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_artykulow}} - jak w: {{LinkPatrz|tabela_artykulow}},
* {{Code|tab_inne_spisy}} - jak w: {{LinkPatrz|tab_inne_spisy}}.
Uruchamiamy funkcję: {{LinkŚródtytuł|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}}, która zwraca wynik, który trzeba sprawdzić, czy istnieje, przed dalszymi operacjami, tzn. {{Code|artykul_spisu_rzeczy}} {{Patrz|artykul_spisu_rzeczy}}, uzyskując z aktualnej listy spis treści dla całej książki, jako jego zespołu, na podstawie jego dowiadujemy, ża taki omawiany spis istnieje, wtedy stary spis, czyli stronę główną podręcznika, przygotujemy do tego, do tego robimy funkcją: {{LinkŚródtytuł|Spis}}, wywołaniem, ale przed tymwywołaniem ustawiamy {{Code|numer {{=}} 1}}, zatem:
<syntaxhighlight lang="lua">
tabela_artykulow,tab_inne_spisy,numer=Spis(tabela_artykulow,nil,tab_inne_spisy,"",numer);
</syntaxhighlight>
Następnym krokiem jest czytanie tego spisu przy pomocy wywołania: {{LinkŚródtytuł|InneSpisy}}, jako:
<syntaxhighlight lang="lua">
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tabela_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
</syntaxhighlight>
Funkcja używa zmiennej uzyskanego wcześniej, tzn. {{LinkPatrz|artykul_spisu_rzeczy}}, to jest to samo, co: {{LinkPatrz|artykul_bez_naglowka_w_bazie}}, uzyskanej z funkcji liczący taki spis według {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, którym wartością jest nazwa artykułu bez nagłówka w bazie.
Wartościami zwracanymi przez funkcję dwie osobne zmienne zrzucane jednocześnie:
<syntaxhighlight lang="lua">
return tabela_artykulow,tab_inne_spisy;
</syntaxhighlight>
Jest to ogólna tabela wszystkich rozdziałów i do nich ich artykułów, i uzupełniona lista innych spisów treści.
===== {{Śródtytuł|IteratorSpisTresci}}{{Code|IteratorSpisTresci}} =====
Funkcja uruchamiająca iterator po spisach treści innych niż spis treści główny, jego definicja:
<syntaxhighlight lang="lua">
local IteratorSpisTresci=function()
local liczba=1;
return function()
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści "..liczba];
liczba=liczba+1;
return spis_tresci;
end;
end;
</syntaxhighlight>
Funkcja wykorzystuje tablicę parametrów autonawigacji ze strony ściśle określonejz katalogu stron: {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}, iteruje co jeden numer spisu treści, tzn.: {{Code|spis treści 1}}, {{Code|spis treści 2}},..., {{Code|spis treści N}}, gdzie {{Code|N}}, to największa liczba charakteryzująca dany spis treści. W samym iteratorze liczba: {{Code|liczba}} {{Patrz|liczba-IteratorSpisTresci}}, powiększa się co jeden, aż do zakończenia limitu spisów treści, tzn do najbliżeszej przerwy lub końca przy iteracji, bo na samym końcu iterator zrzuci wynik {{Code|nil}}.
===== {{Śródtytuł|IteratorFun}}{{Code|IteratorFun}} =====
Funkcja iteruje po stronach i ich nazwach, jakie mają być wyświetlane w linkach, generowane przez {{LinkPatrz|Autonawigacja}}, ale na podstawie {{LinkPatrz|Układ autonawigacji}}, według jednych ze stron: {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}, ustawień.
Definicja skrótowa funkcji i jego funnkcji zwracanej, która jest iteratorem:
<syntaxhighlight lang="lua">
local IteratorFun=function()
... ---- operacje robione przed uruchomieniem iteratora;
return function()
... ---- ciało iteratora
return strona,nazwa; ---- zwracane elementy;
end;
end;
</syntaxhighlight>
Definicja funkcji: {{Code|STRONA}} {{Patrz|STRONA}} i {{Code|NAZWA}} {{Patrz|NAZWA}}, są:
<syntaxhighlight lang="lua">
local STRONA=function(liczba)return liczba*2-1;end;
local NAZWA=function(liczba)return liczba*2;end;
</syntaxhighlight>
W iteratorze dostępna jest zmienna: {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{Patrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, z którego uzyskujemy parametry, te wywołania są napisane w ciele iteratora, w sposób:
<syntaxhighlight lang="lua">
local strona=tabela_parametrow_szablonu_uklad_autonawigacji[STRONA(liczba)];
local nazwa=tabela_parametrow_szablonu_uklad_autonawigacji[NAZWA(liczba)];
</syntaxhighlight>
Iterację zaczynamy od {{Code|liczba}} {{Patrz|liczba-IteratorFun}} od jedynki, po uzyskaniu powyższych wartości, licznik (tą liczbę) powiększamy o jeden, a następnie zwracamy w iteratorze zmienne: {{Code|strona}} {{Patrz|strona}} i {{Code|nazwa}} {{Patrz|nazwa}}.
===== {{Śródtytuł|ZbieranieDanychStronZAutonawigacji}}{{Code|ZbieranieDanychStronZAutonawigacji}} =====
Jest to funkcja do zbierania danych z jednego ze ściśle okreslonej strony szablonu z: {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZbieranieDanychStronZAutonawigacji()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak parametrów.
Gdy parametr z iteracji iteratorem {{Code|iter}},z którego przy jego kolejnych wywołachach otrzymujemy paraametry: {{Code|strona}} {{LinkPatrz|strona}} i {{Code|nazwa}} {{LinkPatrz|nazwa}}, dla {{LinkPatrz|strona}} jest równy wartości odpowiadającej fałszywej, wtedy funkcja zakańcza pracę. W przeciwnym wypadku te parametry są dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, z drugim parametrem: {{Code|true}}, ale nazwa jest dekodowana, gdy ona jest niepusta.
Gdy zmienna {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} nie istnieje, to wtedy ją tworzymy, inicjując ją pustą tablicą, oraz inicjujemy tabelę artykułów dodatkowych wykorzystując funkcję {{LinkPatrz|table.insert}}:
<syntaxhighlight lang="lua">
table.insert(tablista_artykulow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
</syntaxhighlight>
Następnie liczymy parametr dla danego rozdziału, tzn. liczymy {{LinkPatrz|tabela_rozdzial_artykulow}}, według:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow=tablista_artykulow[#tablista_artykulow];
</syntaxhighlight>
Następnie liczyny adres bezwzględny {{LinkPatrz|strona}} z funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, według wywołania, znająć dwa parametry: {{LinkPatrz|strona}} i {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}, czyli:
<syntaxhighlight lang="lua">
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
</syntaxhighlight>
====== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} ======
Jest to funkcja wsadzająca elementy do tablicy do funkcji: {{Code|{{sr|#WstawianieElementowychZarejestrowanychStronDoBazyWoluminu|p=StronicowyParser/SpisTreści/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykulow,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} - tabela rozdziału i do niego artykułów,
* {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}} - numer pozycji na którym element zostonie element {{LinkPatrz|tab_stare}} wstawiony,
* {{Code|tab_stare}} {{LinkPatrz|tab_stare}} - wstawiany element.
Jeżeli zmienna: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}} nie istnieje, to jest inicjowana tablicą pustą.
Liczymy adres strony na podstawie:
<syntaxhighlight lang="lua">
---- Jeżeli zmienna jest tablicą i nie ma klucza: "["LINK"]=true", wtedy przyjmuje wartość: true, w przeciwnym wypadku: false;
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_stare[1]);
---- Nazwa artykułu lub adres strony, dla ktorej liczymy adres;
local adres=czy_table_baza_artykulu and tab_stare[1][1] or tab_stare[1];
</syntaxhighlight>
Liczymy czy stronajest w podręczniku, czyli: {{Code|czy_w_podreczniku}} {{Patrz|czy_w_podreczniku}} ze {{Code|tab_stare[5]}} {{Patrz|tab_stare[5]}}, a następnie kod języka i projektu, kolejno: {{Code|kod_jezyka_koncowy}} {{Patrz|kod_jezyka_koncowy}} i {{Code|kod_projektu_koncowy}} {{Patrz|kod_projektu_koncowy}}, jeżeli zmienna: {{Code|czy_table_baza_artykulu}} {{Patrz|czy_table_baza_artykulu}} jest nie równa wartości prawdziwej, to te zmienne przyjmuje wartość {{Code|nil}}, w przeciwnym wypadku kolejno wartości: {{Code|tab_stare[1][5]}} i {{Code|tab_stare[1][6]}}.
Wsadzamy element do tablicy {{LinkPatrz|dodatkowe_artykuly}} przy pomocy funkcji {{LinkPatrz|table.insert}}, w sposób:
<syntaxhighlight lang="lua">
table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),nazwa,czy_w_podreczniku,});
</syntaxhighlight>
Póżniej wstawiamy element {{LinkPatrz|tab_stare}} do {{LinkPatrz|tabela_rozdzial_artykulow}} na pozycję: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, używając wywołania {{LinkPatrz|table.insert}}, czyli:
<syntaxhighlight lang="lua">
table.insert(tabela_rozdzial_artykulow[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
</syntaxhighlight>
===== Dalszy opis funkcji =====
Dalszym krokiem jest wsadzenie elementu do ogólnej tablicy, a tutaj do artykułu w danym rozdziale, robimy,mając przetwwarzaną zmienną {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}} to według:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy;
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy,...,...,true,{strona,nazwa,},...,...,...,"",...,...,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nil,nil,...,--[[]]"*","",false,"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]");
</syntaxhighlight>
Powyżej użyto trójkropków: {{Code|...}}, bo te parametry są standardowe dla każdego wywołania.
Powyżej wstawianie odbyło się przy pomocy funkcji: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}, używając: {{Code|{{sr|#WstawianieElementowychZarejestrowanychStronDoBazyWoluminu|p=StronicowyParser/SpisTreści/Tom I}}}}, w której jest tworzone {{LinkPatrz|tab_stare}}, który natomiast jest wsadzany do ogólnej tablicy rozdziałów i w nich artykułach na odpowiednią pozycję. W wstawianym elemencie ustawiamy stuczną listę z początkiem: {{Code|<nowiki>*</nowiki>}}, z numeracją pusta, i linią artykułu, którą jest link:
<syntaxhighlight lang="lua">
"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]"
</syntaxhighlight>
A dalej należy zaapoznać się z funkcją przetwarzającą dane przed wsadzeniem do ogólnej tablicy.
==== Dalszy opis funkcji ====
Liczymy adres strony głónnej podręcznika {{Code|pelna_nazwa_ksiazki}} {{LinkPatrz|pelna_nazwa_ksiazki}} z funkcji: {{Code|{{sr|#m["NazwaModułu"]|p=Nazwy/Tom III}}}}, i sprawdzamy, czy strona istnieje na podstawie funkcji: {{Code|{{sr|#p.PoliczZbiory|p=Techniczne}}}}. Jeśli strona istnieje, wtedy liczymy, czy istnieje jego przekierowanie z funkcji: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}},a jeżeli istnieje jego przekierowanie, to wtedy wartość tej funkcją jest stroną na którą wskaazuje to przekierowanie, oznaczmy tą zmienną {{Code|strona_spisu_tresci}} {{Patrz|strona_spisu_tresci}}.
Jeżeli {{LinkPatrz|strona_spisu_tresci}} istnieje, wtedy jego nazwę dekodujemy funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, z drugim parametrem {{Code|true}}.
Używając tabeli nazw, tzn. {{Code|tabela_nazw}} {{Patrz|tabela_nazw}}, której przydzielamy wartość pustą, liczymy kolejno {{Code|nazwa_przestrzeni2}} {{Patrz|nazwa_przestrzeni2}}, {{Code|nazwa_przestrzeni_ksiazki2}} {{Patrz|nazwa_przestrzeni_ksiazki2}} i {{Code|nazwa_ksiazki2}} {{Patrz|nazwa_ksiazki2}}, z następujących funkcji kolejno: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}, {{Code|{{sr|#m["NAZWAPRZESTRZENIKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, albo: {{Code|{{sr|#m["NAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, gdy: {{LinkPatrz|nazwa_przestrzeni_ksiazki2}}, jest pusta, przeciwnie z: {{Code|{{sr|#m["SUBNAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}. Sprawdzamy, czy one pokrywają się kolejno z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, a jeżeli w całości, wtedy sprawdzamay, czy to z {{Code|2}} należą do przestrzeni nazw i niby-przestrzenu nazw książkowych. Przestrzenie ksiązkowe, to: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}} oraz {{Np|User|link=tak}} w niby przestreni nazw: '''{{Np|User|link=tak}}:<użytkownik>/''' i {{Np|Project|link=tak}} w niby-przestrzeni nazw: '''{{Np|Project|link=tak}}:Brudnopis/<użytkownik>/''', jeżeli do tej przestrzeni nie należy, to funkcja kończy się z błędem (z wartością) {{Code|2}}, przeciwnie tworzona jest zmienna {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}:
<syntaxhighlight lang="lua">
adres_ksiazki_glownego_spisu_tresci={nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,};
</syntaxhighlight>
Także jest tam wywoływana funkcja {{LinkPatrz|__FUNKCJA_SPISU_RZECZY}}, jeśli istnieje:
<syntaxhighlight lang="lua">
local wynik=__FUNKCJA_SPISU_RZECZY and __FUNKCJA_SPISU_RZECZY(nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2) or nil;
</syntaxhighlight>
Jeżeli ta funkcja nie istnieje, lub zwraca {{Code|nil}} lub nawet {{Code|1}}, wtedy funkcja zakańcza się z błędem: {{Code|1}}, przeciwnie na podstawie tego z {{Code|2}}, jest przyrównywanie tego temu bez tego, wtedy mamy nowe parametry nazw bez {{Code|2}}. I na podstawie tego liczymy nową nazwę {{LinkPatrz|pelna_nazwa_ksiazki}}.
Liczymy adres ustawień z {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}} i sprawdzamy, czy on ma przekierowanie z {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, wtedy ma nowy adres, dalej liczymy jego kod źdrudłowy z funkcji: {{Code|{{sr|#p.WikikodStrony|p=Techniczne}}}}, przy pomocy funkcji:
<syntaxhighlight lang="lua">
local tekst=techniczne_modul.WikikodStrony{["przestrzeń"]="",["nazwa"]=adres_ustawien,};
</syntaxhighlight>
A jeżeli taka strona nie istnieje, wtedy: {{Code|tekst}}, przyjmuje wartość: {{Code|nil}}, wtedy wywołujemy kod pojedynczego spisu treści {{Patrz|pojedyncze_wywolanie}}, czyli strony głównej podręcznika (książki):
<syntaxhighlight lang="lua">
---- Zbieranie parametrów pojedynczego spisu (strony głónej strony jako spisu treści)
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
---- Sprawdzanie, czy dodatkowy spis treści istnieje , taki jak: "Spis treści", i przekształcanie tablic otrzymanych z poprzedniego wywołania;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
---- Zwracanie parametrów;
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
</syntaxhighlight>
Przeciwnie kodujemy ten tekst {{Code|tekst}} {{Patrz|tekst}} przy pomocy pustej tabeli: {{Code|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}}. Co na podstawie liczmy tego parametry szablonu o {{Code|obiekt}} {{=}} {{Code|SZABLON}}, w nim o nazwie: {{Code|{{sr|#p.uklad_autonawigacji|p=StronicowyParser/obiekty}}}}, czyli {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, również {{Code|nazwa_szablonu_uklad_autonawigacji}} {{Patrz|nazwa_szablonu_uklad_autonawigacji}} i {{Code|tabela_modyfikatorow_uklad_autonawigacji}} {{Patrz|tabela_modyfikatorow_uklad_autonawigacji}}, a także: {{Code|szablon_uklad_autonawigacji}} {{Patrz|szablon_uklad_autonawigacji}}, dalej przerywamy pętle. Jeżeli nie wykryto szablonu autonawigacji, wtedy zakańczamy funkcje jak w punkcie: {{LinkPatrz|pojedyncze_wywolanie}}. A jeżeli nie ma tabeli parametrów szablonu {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, to też podobnie.
A jeżeli chcemy liczyć manualnie, wtedy musimy powiedzieć:
<syntaxhighlight lang="lua">
local automat_manualny=tabela_parametrow_szablonu_uklad_autonawigacji["automat manualny"];
</syntaxhighlight>
Jeżeli wartość tej zmiennej {{Code|automat_manualny}} {{Patrz|automat_manualny}}, jest nie {{Code|nil}}, i jest niepusta, to ze zmiennej {{Code|spis treści}} {{Patrz|spis treści}}, liczmy z tego nazwę książki i ona musi się zgadzać ze zmienną {{LinkPatrz|pelna_nazwa_ksiazki}}, co po zgadzaniu, liczmy nazwę artykułu nazwy artykułu, w przeciwnym wypadku mamy do czynienia ze stroną główną podręcznika, wartość pusta będzie odpowiadała stronie głównej podręcznika, co na sam koniec liczymy:
<syntaxhighlight lang="lua">
---- Zbieranie parametrów pojedynczego o policzoej nazwie artykułu spisu;
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,sub_nazwa_spis_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
---- Sprawdzanie, czy dodatkowy spis treści istnieje , taki jak: "Spis treści", i przekształcanie tablic otrzymanych z poprzedniego wywołania;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
---- Zwracanie parametrów;
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
</syntaxhighlight>
Gdy zmienna {{LinkPatrz|automat_manualny}} jest pusta lub nie podana, wtedy następnym krokiem jest odkodowanie parametrów {{LinkPatrz|Układ autonawigacji}} przy pomocy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}}, i ich rozwinięcie funkcją: {{LzLua|frame:preprocess}}.
Ustawmy zmienną {{Code|numer}} {{LinkPatrz|numer}} na wartość {{Code|1}}.
Liczymy zmienne: {{Code|bez spisów treści}} {{Patrz|bez spisów treści}} i {{Code|bez analizy spisów treści}} {{Patrz|bez analizy spisów treści}} tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}} oraz sprawdzamy, czy one są niepuste.
Gdy zmienna: {{LinkPatrz|bez spisów treści}}, jest niepodana lub pusta, wtedy liczymy z klucza: {{LinkPatrz|spis treści}}, ze zmiennej: {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, a jeżeli ta zmienna istnieje, wtedy ją dekodujemy funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, z drugim parametrem {{Code|true}}, i liczymy jego adres bezwzględny z funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, mając względem, którego ma liczyć, tzn. {{LinkPatrz|pelna_nazwa_ksiazki}}. Następnie sprawdzamy, czy w policzonym spisie nazwa ksiązki zgadza się z tą: {{LinkPatrz|pelna_nazwa_ksiazki}}, a jeżeli się zgadza, to liczymy nazwę artylułu spisu treści, przeciwnie nazwa artykułu spisu treści ma wartość pustą, wartość pusta nazwy artykułu spisu treści odpowiada stronie głównej podręcznika. W innym wypadku, gdy zmienna {{LinkPatrz|bez spisów treści}} jest niepusta, wtedy tylko uwzględniamy nazwę spisu treści jako stronę główną podręcznika. Tą zmienną jest: {{Code|nazwa_glownego_spisu}} {{LinkPatrz|nazwa_glownego_spisu}}.
Gdy zmienne: {{LinkPatrz|bez spisów treści}} i {{LinkPatrz|bez analizy spisów treści}}, są niepodane lub puste, wtedy liczymy pojedynczy artykuł będący spisem treści o nazwie: {{LinkPatrz|nazwa_glownego_spisu}}, zatem tego wywołanie wygląda tak:
<syntaxhighlight lang="lua">
tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_glownego_spisu,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
</syntaxhighlight>
Napiszmy przemianowania zmiennych na {{Code|tablista_artykulow}} {{LinkPatrz|tablista_artykulow}} i {{Code|licencja}} {{Patrz|licencja}}, według:
<syntaxhighlight lang="lua">
tablista_artykulow=tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
</syntaxhighlight>
Gdy zmienna: {{Code|przekierowanie_spisu_tresci}} {{LinkPatrz|przekierowanie_spisu_tresci}} ma wartość odpowiadającej prawidziwej, czyli to pewien łańcuch znakowy, wtedy policzmy {{LinkPatrz|nazwa_glownego_spisu}} dla tego przekierowania:
<syntaxhighlight lang="lua">
nazwa_glownego_spisu={przekierowanie_spisu_tresci,nazwa_glownego_spisu,};
</syntaxhighlight>
Jeśli wartość: {{Code|tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika}} {{Patrz|tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika}}, jest {{Code|nil}} lub {{Code|0}}, wtedy funkcja jest zakańczana w sposób:
<syntaxhighlight lang="lua">
return tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
</syntaxhighlight>
Lub przeciwnie, liczymy spis treści odpowiadającym wartością tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, zatem to policzmy, czy tak jest, schematycznie:
<syntaxhighlight lang="lua">
---- Przygotowanie spisu do wielu spisów treści;
tablista_artykulow,tab_inne_spisy,numer=Spis(tablista_artykulow,nil,tab_inne_spisy,nazwa_glownego_spisu,numer);
---- Liczenie czy jest artykuł w spisie treści o nazwie typu: "Spis treści";
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tablista_artykulow);
if(artykul_spisu_rzeczy)then
---- Dodaje spis nowy do większego spisu, ten wykryty zaraz powyższą funkcją;
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
</syntaxhighlight>
Uruchamiamy iterator {{Code|iter}} {{Patrz|iter}} z funkcji: {{LinkŚródtytuł|IteratorSpisTresci}}, bez parametrów, zdefiniowanej w tym bloku, co jest ta iteracja, wtedy możemy je iterować po spisie treści w sposób:
<syntaxhighlight lang="lua">
for spis_tresci in iter do
.... ---- ciało iterowanej pętli;
end;
</syntaxhighlight>
Kazdy tak uzyskany {{Code|spis_treści}} {{LinkPatrz|spis_treści}} dekodujemy funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, następnie rozwijamy adres względny na bezwzględny względem korzenia drzewa przestrzeni nazw z funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, i dodajemy te spisy do głównego drzewa tablicy rozdziałów i ich artykułów przy pomocy funkcji: {{LinkŚródtytuł|InneSpisy}}, właśnie tak:
<syntaxhighlight lang="lua">
tablista_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer);
</syntaxhighlight>
Uruchommy inny iterator {{LinkPatrz|iter}} z funkcji: {{LinkŚródtytuł|IteratorFun}}, wywołanej bezparametrowo, wtedy iterację możemy napisać wykorzystujac funkcję {{LinkŚródtytuł|ZbieranieDanychStronZAutonawigacji}}, zdefiniowanej w tej pętli, działającą tak:
<syntaxhighlight lang="lua">
for strona,nazwa in iter do
... ---- definicja funkcji: ZbieranieDanychStronZAutonawigacji;
ZbieranieDanychStronZAutonawigacji();
end;
</syntaxhighlight>
Funkcja w nagłówku zwraca wielowartościowy, wtedy wynik na samym końcu zakończenia jej jest:
<syntaxhighlight lang="lua">
return tablista_artykulow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
</syntaxhighlight>
Opis zwracanych parametrów:
* {{Code|tablista_artykulow}} - jak w: {{LinkPatrz|tablista_artykulow}},
* {{Code|licencja}} - jak w: {{LinkPatrz|licencja}},
* {{Code|nazwa_glownego_spisu}} - jak w: {{LinkPatrz|nazwa_glownego_spisu}},
* {{Code|tab_inne_spisy}} - jak w: {{LinkPatrz|tab_inne_spisy}},
* {{Code|dodatkowe_artykuly}} - jak w: {{LinkPatrz|dodatkowe_artykuly}},
* {{Code|adres_ksiazki_glownego_spisu_tresci}} - jak w: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3ziw0wvtebtw7czw4dtiu2tul30cmfv
Wikibooks:Moduły/StronicowyParser/Moduł główny
4
63665
551481
546075
2026-08-11T18:36:33Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikibooks:Moduły/StronicowyParser/Tom I]] do [[Wikibooks:Moduły/StronicowyParser/Moduł główny]], bez pozostawienia przekierowania pod starym tytułem
546075
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c10r2p8e5xe1cj19e4ususc50dkt5f4
Wikipedysta:Persino/brudnopis12
2
63880
551486
550957
2026-08-11T18:54:03Z
Persino
2851
UWAGA! Zastąpienie treści hasła bardzo krótkim tekstem: „{{lgu|artykuł/podartykuł|nazwa }}”
551486
wikitext
text/x-wiki
{{lgu|artykuł/podartykuł|nazwa }}
gt0vq5bj0tdpn5vna1p7tw728jda2bn
551489
551486
2026-08-11T19:47:15Z
Persino
2851
Anulowano wersję [[Special:Diff/551486|551486]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
551489
wikitext
text/x-wiki
{{Uprawa - roślina infobox
| nazwa = Ostryż długi
| obrazek = A closeup of Turmeric.JPG
| łacina = Curcuma longa L.
| nazwy = kurkuma
| wikipedia = Ostryż długi
| wikibooks 1 = Napary/Ostryż długi | __wikibooks 1 = herbatek z kurkumy
| wikibooks 2 = Zioła i przyprawy/Kurkuma | __wikibooks 2 = kurkumy
| wikibooks 3 = Ekoogrodnictwo/Rośliny użytkowe/Ostryż długi | __wikibooks 3 = uprawy ostryżu długiego
| wikispecies = Curcuma longa
| wikisłownik 1 = ostryż długi
| wikisłownik 2 = kurkuma
| commons = Category:Curcuma longa
}}
ij4q7tdfv256vd4l6bi7puua7ppgzrw
551490
551489
2026-08-11T19:47:26Z
Persino
2851
551490
wikitext
text/x-wiki
{{Uprawa - roślina infobox
| nazwa = Ostryż długi
| obrazek = A closeup of Turmeric.JPG
| łacina = Curcuma longa L.
| nazwy = kurkuma
| wikipedia = Ostryż długi
| wikibooks 1 = Napary/Ostryż długi | __wikibooks 1 = herbatek z kurkumy
| wikibooks 2 = Zioła i przyprawy/Kurkuma | __wikibooks 2 = kurkumy
| wikibooks 3 = Ekoogrodnictwo/Rośliny użytkowe/Ostryż długi | __wikibooks 3 = uprawy ostryżu długiego
| wikispecies = Curcuma longa
| wikisłownik 1 = ostryż długi
| wikisłownik 2 = kurkuma
| commons = Category:Curcuma longa
}}
{{lgu|artykuł/podartykuł|nazwa }}
1mh8k5vi7qpyqgppn0dh5rfwt92vknd
551491
551490
2026-08-11T21:14:02Z
Persino
2851
551491
wikitext
text/x-wiki
{{Uprawa - roślina infobox
| nazwa = Ostryż długi
| obrazek = A closeup of Turmeric.JPG
| łacina = Curcuma longa L.
| nazwy = kurkuma
| wikipedia = Ostryż długi
| wikibooks 1 = Napary/Ostryż długi | __wikibooks 1 = herbatek z kurkumy
| wikibooks 2 = Zioła i przyprawy/Kurkuma | __wikibooks 2 = kurkumy
| wikibooks 3 = Ekoogrodnictwo/Rośliny użytkowe/Ostryż długi | __wikibooks 3 = uprawy ostryżu długiego
| wikispecies = Curcuma longa
| wikisłownik 1 = ostryż długi
| wikisłownik 2 = kurkuma
| commons = Category:Curcuma longa
}}
{{lu|artykuł/podartykuł|nazwa }}
{{lgu|artykuł/podartykuł|nazwa }}
3zhmqrfrdaj8zyjbeyti2qs4agvl3r1
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom I
4
63902
551542
551199
2026-08-12T03:42:59Z
Persino
2851
551542
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.TekstWprowadzeniaTekstu}} ==
Funkcja liczy tekst pomiędzy dwoma rozdziami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu,
* {{Code|id_rozdzialu1}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora,
* {{Code|id_rozdzialu2}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora.
Przykład użycia:
<syntaxhighlight lang="lua">
local strona="Pomoc:Spis treści";
local title=mw.title.makeTitle('',strona);
local tekst=title:getContent();
local id_rozdzialu1="Pomoc Wikibooks";
local id_rozdzialu2="Wstęp";
local stronicowyparser_rozdzialu_modul=require("Module:StronicowyParser/Rozdziały");
tekst=stronicowyparser_rozdzialu_modul.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2);
</syntaxhighlight>
Uzykane wyniki w tekście pomiędzy dwoma identyfikatorami:
<syntaxhighlight lang="lua">
local tekst="'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}.";
</syntaxhighlight>
== {{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} ==
Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{LzLua|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji rablicy transportu.
Parametry ramki funkcji tablicy transprotu dziecka rodzica:
* {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{LzLua|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem tej funkcji,
* {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora,
* {{Code|3}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora.
Funkcja ramki uruchamia: {{Code|{{sr|#p.TekstWprowadzeniaTekstu|b=tak}}}}, do wyszukiwania tekstu pomiędzy dwoma rozdziałami, jako typową funkcję biblioteczną.
Przykłady użycia w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:StronicowyParser/Rozdziały|TekstPoNapisieWprowadzeniaTekstuStrony|Pomoc:Spis treści|Pomoc Wikibooks|Wstęp}};
</syntaxhighlight>
Wyniki zwrócone przez ramkę uruchomioną, w rozdzicu, jako dziecko:
<syntaxhighlight lang="mediawiki">
'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}.
</syntaxhighlight>
== {{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} ==
Funkcja zwraca nagłówek (sekcję) rozwinięty o danym identyfikatorze na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{LzLua|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje.
Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony .
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu funkcji.
Parametry ramki funkcji tablicy transportu:
* {{Code|1}} - nazwa strony - funkcja rozwija nazwę strony,
* {{Code|2}} - identyfikator rozdzialu - domyślna wartość pusta.
Przykłady użycia:
<syntaxhighlight lang="lua">
{{#invoke:StronicowyParser/Rozdziały|ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}}
</syntaxhighlight>
Uzyskane wyniki w postaci nierozwiniętego wikikodu:
<syntaxhighlight lang="mediawiki">
<templatestyles src="Szablon:Link_wewnętrzny/styles.css"><span class="niew link">[[:w:Opera (program)|Opera]]</span>
</syntaxhighlight>
== {{Code|p.NumerSekcjiStrony}} ==
Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{LzLua|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NumerSekcjiStrony(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji rablicy transportu.
Parametry ramki funkcji tablicy transprotu dziecka rodzica:
* {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{LzLua|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: frame:preprocess,
* {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta,
Przykład użycia w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}:
<syntaxhighlight lang="lua">
{{#invoke:StronicowyParser/Rozdziały|NumerSekcjiStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}}
</syntaxhighlight>
Otrzymane wyniki, to przedstawia numer sekcji podanego rozdziału jest: {{Code|9}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o30dgsvt96j11wi01tih4pyu7vf7rof
Wikibooks:Moduły/StronicowyParser/Rozdziały
4
63903
551360
551228
2026-08-11T13:45:20Z
Persino
2851
/* Inne funkcje */
551360
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}}
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}}
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}}
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hseq3alhd9fuyzekpamly3oyzg6qxni
551517
551360
2026-08-12T01:04:25Z
Persino
2851
/* Spis treści */
551517
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje:
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - do uzyskiwania informacji o sekcji i tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - doanalizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - do modyfikacji analizowanej strony do lepszego formatu, by później lłatwo dałosię go parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, pomędzy analizowanymi liniami, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - do skladania i zbierania informaacji o rozdziałach i ich tekstach rozdziałów, i z nimi stowarzyszącymi informacjaami, jest to robione przy pomocy iteratora,który analizuje poszczególne sekcje, wraz z ich informacjami.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
r5dnna4pg69fowgqeute45ofyy5prcz
551518
551517
2026-08-12T01:07:28Z
Persino
2851
/* Spis treści */
551518
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje:
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - do uzyskiwania informacji o sekcji i tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - do modyfikacji analizowanej strony do lepszego formatu, by później lłatwo dałosię go parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, pomędzy analizowanymi liniami, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - do skladania i zbierania informaacji o rozdziałach i ich tekstach rozdziałów, i z nimi stowarzyszącymi informacjaami, jest to robione przy pomocy iteratora,który analizuje poszczególne sekcje, wraz z ich informacjami.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
swkw0mxk24fvmv3gtdrbtr41prq8hee
551519
551518
2026-08-12T01:11:22Z
Persino
2851
/* Spis treści */
551519
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje:
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - do uzyskiwania informacji o sekcji i tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - do modyfikacji analizowanej strony do lepszego formatu, by później lłatwo dałosię go parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, pomędzy analizowanymi liniami, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - do skladania i zbierania informacji o rozdziałach i ich tekstach rozdziałów, i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sfavpv0ddib432jdy2ta9ltl8ck6tyk
551520
551519
2026-08-12T01:16:28Z
Persino
2851
/* Rozdziały */
551520
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały/Tom II}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje:
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - do uzyskiwania informacji o sekcji i tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - do modyfikacji analizowanej strony do lepszego formatu, by później lłatwo dałosię go parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, pomędzy analizowanymi liniami, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - do skladania i zbierania informacji o rozdziałach i ich tekstach rozdziałów, i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
69edjd416r7bilgkel0b24cuki9mi7y
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom IV
4
63906
551355
551354
2026-08-11T12:38:35Z
Persino
2851
/* Wartości zwracane przez funkcję w przypadku wykrycia rozdziału */
551355
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} ==
Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end;
</syntaxhighlight>
Funkcja nie przyjmuje żadnego parametru.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony();
</syntaxhighlight>
Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku.
== {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
...
return function(linia,tak_ce_spis_tresci)
... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane.
return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
Parametry funkcji zwracanej:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział,
* {{Code|tak_ce_spis_tresci}} {{Patrz|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej.
Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość:
* {{Code|linia_temp}} {{Patrz|linia_temp}} - rozważana linia,
* {{Code|nazwa_rozdzialu}} {{Patrz|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii,
* {{Code|poziom_rozdziału}} {{Patrz|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} {{Patrz|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}},
* {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}},
* {{Code|numeracja_rozdzialu}} {{Patrz|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi,
* {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} - czy rozdział napisany jako szablonowo lub znacznikowo, jeśli jest centrowany, to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tablica_analizy_obiektow_strony_dany_modul={};
local linia="<h6>Nagłówek</h6>";
linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
local tab_nazwa_spisow_przekierowaniowych={};
local nazwa_przestrzeni="";
local nazwa_przestrzeni_ksiazki="";
local nazwa_ksiazki="Książki";
local nazwa_spisu_tresci="";
local pelna_nazwa_spisu_tresci_szablonowa="";
local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
end;
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Funkcja zwraca wyniki:
<syntaxhighlight lang="lua">
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil;
</syntaxhighlight>
=== Wartości początkowe przyjmowane przez funkcję ===
Wartością początkową przyjmowaną jedyną jest zmienna {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=70;
</syntaxhighlight>
Ona mówi, jaką szerokość może mieć maksymalną rozdział zerowy, czy nawet ujemny, aby został uznany za prawdziwy rozdział.
Reszta zmiennych przyjmuje wartości poczatkowe, jako nilowe, jak to jest przy deklaracji zmiennych w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== Tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Przedstawione tutaj tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a opisane w: {{Code|{{sr|StronicowyParser/obiekty}}}}.
==== {{Śródtytuł|Szablony centrowania}}Szablony centrowania ====
Funkcja wykorzystuje tabelę: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, o:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Z którego się dowiadujemy, z jakimi szablonami centrowania mamy do czynienia w tej funkcji, funkcja je wykrywa i ustawia, że dla tej linii z nim ją wykrył, niezależnie, jakie linki wewnątrz posiada.
==== Szablony linków wewnętrznych artykularne tworzące spis rzeczy szablonowe ====
Jeżeli w linii wykryto te szablony zamiast szablonów centrowania, to wiadomo, że ona nie stanowi rozdziału w liniach, które mają być rozdziałami ujemnymi lub zerowymi. Do tego celu służą linki zdfiniowane w tablicach, które są napisane w podrozdziałach poniżej.
===== Pierwszego typu - linki inteligentne =====
Następną tablicą: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
===== Drugiego typu - szablony tworzenia spisu rzeczy =====
Tą tablicą jest: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
==== Znaczniki wprowadzenia tekstu ====
Ta tablica: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, zawiera definicję znaczników różnych nagłówków, zdefiniowaną tam.
Są to znaczniki {{Strong|HTML}} o możliwych pozimach od: {{Code|1}} do {{Code|6}}, jakie ta funkcja ma wykrywać, żeby uznać tą linię za rozdział, niezależnie, jakie linki wewnątrz znacznika są zdefiniowane.
Poziomy większe od {{Code|6}} są jedynie możliwe za pomocą szablonu {{s|HNumer}}.
==== Rozdziały dodatnie centrowane znacznikowe i szablonowe, które uznać za nie rozdziały ====
Linie, które zostały uznane za rozdziały, można uznać, że takie nie są, jeżeli zawierają one szablony zdefiniowane w tablicy: {{Code|{{sr|#p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}:
<syntaxhighlight lang="lua">
p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={
["Rozdział"]=true,
["Podrozdział"]=true,
["MapaObrazu"]=true,
};
</syntaxhighlight>
Rozdziały te, które zostały uznane za nierozdziały, powoduje to, że iterator tej funkcji wtedy dla ściśle określonej linii zwróci wartość {{Code|nil}}, a nie konkretne wartości, które by świadczyły o rozdziale centrowanym. Szablony centrowania szablonowego są zdefiniowane w: {{LinkŚródtytuł|Szablony centrowania}}, a znaczniki to są po prostu w postaci definicji: {{Tag|center}}.
==== Funkcje lokalne ====
===== {{Śródtytuł|LiniaCydzyslow}}{{Code|LiniaCydzyslow}} =====
Fukcja wyszukuje, czy rozdział jest pomiędzy cudzysłowami, a jeżeli nie, to zwraca {{Code|false}}, w przeciwnym wypadku sprawdzamy dalej, jeżeli rozdział pasuje do tego, że on składa się z samych liter dużych z możliwymi odstępami, oraz w rozdziale można wyróżnić pojedyńcze litery duże, lub ta duża pojedyncza znajduje sie na początku rozdziału, bądź na jej końcu, wtedy funkcja zwraca wartość odpowiadającej wartości fałszu, a jęzeli nie, to prawdy.
===== {{Śródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}{{Code|WykluczenieNieodpowiednichNormSzablonowych}} =====
Funkcja zwraca {{Code|true}}, gdy dało się wykluczyć nieodpowiednie norm szablonowe, w przeciwnym wypadku {{Code|nil}}, to ostatnie właśnie to jest zwracane, gdy obiekt szablonowy jest z kodem o obiektami: {{Code|GALERIA}}, {{Code|ŹRÓDŁO}}, {{Code|PRE}}, {{Code|INNEPRE}}, {{Code|WIKITABELA}} lub {{Code|MAPAOBRAZU}}, albo on jest szablonem normalnym o obiekcie: {{Code|SZABLON}}, którego nazwy pasują do nazw kluczy tabeli: {{LinkPatrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}.
===== {{Śródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}{{Code|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}} =====
Funkcja słuzy do rewidowania zawartości szablonu, ukrytą pod pewnym parametrem, czy znacznika, oczywiście centrowania, czy ona jest: {{Code|<nowiki>^%s*%d+%s*/%s*%d+%</nowiki>}} (czyli rozdziały składające się z dwóch liczb oddzielonych prawym ukośnikiem), a jeśli nie, to czy: {{Code|<nowiki>!%s*'*%s*$</nowiki>}} (na końcu przed ewentualnie cudzysłowem znajduje się wykrzyknik), w takich przypadkach zawsze zwracanajest wartość {{Code|nil}}, jeżeli się funkcja zakańcza, jeżeli sprawdzenie przeszło pomyślnie.
Jeśli ona się nie zakończyła przedwcześnie, wtedy liczy zmienne, tutaj nielokalne, rozdział {{Code|rozdzial}} i numerację {{Code|numeracja}} z: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}} {{Patrz|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ze zmiennej testowej, ktorą jest pojedyncza linia bez znaków listy, a jeżeli tak z policzonego ze zmiennej rozdziału funkcja: {{LinkŚródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}, nie wyklucza niczgo, tzn. zaprzeczenie zwrócone przez tą funkcję przyjmuje wartość prawdziwą - czyli w tekście sprawdzamy występują te specjalne znaki, wtedy zmienne: {{Code|numeracja}} i {{Code|rozdział}, są przyrównywane do wartości {{Code|nil}}, przeciwnym wypadku funkcja nic nie robi.
===== {{Śródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}{{Code|NiestardardoweSzablonoweWprowdzeniaTekstu}} =====
Funkcja sprawdza zawartość szablonu jakiegoś centrowania. Funkcja rewiduje, czy nazwa tego szablonu, czy jest rzeczywiście szablonem centrowania według tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, a jeżeli tak, z tej tabeli jest liczony klucz zmiennej jego zawartości tabeli parametrów szablonow, pod którym jest ukryta jego zawartość liczona z tabeli parametrów szablonu, co ta zawartartość jest sprawdzana później przez funkcję: {{LinkŚródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}, która możliwie niluje odpowiednio dwie zmienne, jeżeli zajdzie taka potrzeba.
===== {{Śródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}{{Code|NiestardardoweZnacznikoweWprowdzeniaTekstu}} =====
To samo, co dla funkcji: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, tylko że, tym razem nie dla szablonów centrowania, tylko dla znaczników centrowania {{Tag|center}}, ale też dla znaczników wprowadzenia tekstu opisywanych przez tabelę: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Początek (znaki specjalne początku pozycji listy) i rozdział z możliwą numeracją ====
Funkcja wyodrębnia początek i rozdział z możliwą numeracją od siebie na linii z pozycją listy. Jeżeli tego się nie dało wyodrębnić, to mamy wtedy prawdopodobnie rozdział zerowy, ale nie musi być, może być to zwykła linia tekstowa pewnego napisu wprowadzenia tekstu. W takim przypadku funkcja liczy rozdział z numeracją lub wyodrębnia to z tego otoczonego cudzysłowami.
==== Badanie jaki to jest rozdział ====
===== Rozdział zerowy =====
====== Sukces wyodrębnianiu rozdziału ======
Jeżeli to dało się wyodrębnić {{ZobaczTeż|rozdział}}, to przyjmujemy, że zmienna {{Code|poczatek}} jest równa ciągowi znakowemu pustemu, a z rozdziału numeracji usuwamy znaki specjalne dzięki {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, dalej są usuwane odstępy z początku i końca tego czegoś i na podstawie tego jest wyznaczany rozdział i numeracja z tak uzyskanemu szeregu.
====== Brak numeracji rozdziału ======
{{HNumer|1=
======= Wykryta linia cudzysłowu =======
}}
Jest sprawdzane, czy to jest linia z cudzysłowem na podstawie {{LinkŚródtytuł|LiniaCydzyslow}}, a jeżeli funkcja zrzuci wartość odpowiadającą prawdziwej wartości, wtedy rozdział jest równy linii, a poczatek i numeracja są równe ciągowi pustemu.
{{HNumer|1=
======= Adresu URL linii =======
}}
W innym wypadku, gdy poprzedni warunek nie jest spełniony, sprawdzamy, czy któreś z poszczególnych ciągów z czarnymi znakami są adresami z {{Strong|URL}}, a jeżeli tak, to wtedy są tak samo inicjowane zmienne.
===== Rozdział będący rozdziałem pozycji listy (rozdział niezerowy) =====
Gdy nie jest spełniony warunek {{LinkZobaczTeż|rozdział}}, to wtedy to samo robimy, co tam, tylko bez znaków początku pozycji listy, który usunęliśmy z linii, rozdzielając na dwa łańcuchy znaków, tzn. rozdział i numerację.
==== Uzyskany istniejący rozdział ====
Jeżeli uzyskamy rozdział istnieje, to zmienna {{Code|ze_specialnymi_obiektami}} {{Patrz|ze_specialnymi_obiektami}} przyjmuje wartość {{Code|true}}, a zmienna {{Code|tekst}} jest równa uzyskanemu rozdziałowi bez numeracji, w przeciwnym wypadku jest równy linii {{Code|linia}} podanemu do funkcji.
==== Iterator po zawartości tekstu linii prawdopodobnego rozdziału ====
Uruchamiamy iterator: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, któr zwraca fukcję iteratora po zmiennej {{Code|tekst}} z pierwszą funkcją, która powoduje, że ona jak zwróci wartość {{Code|nil}}, to natychmiast się zakańcza, lub to robi po zakończeniu zasobów danych.
===== Możliwe operacje robione przez funkcję iteratora =====
Funkcja dopuszcza rozdziały z pozycją listy, poczatek linii ma znaki listy tzn. {{Code|<nowiki>[%*#;:]</nowiki>}}, wtedy mamy doczynienia z mozliwy rozdziałem ujemnym, ale to nie musi byc rzeczywiście rozdziałem, linia nie musi być częścią listy, wtedy mamy rozdział z możliwą numeracją, ale z drugiej strony w tych dwóch poprzednich wypadkach, nawet numeracji nie musi być, aby był przez tą funkcją zwracaną, uznanym, że to może być rozdział, albo normalną linią.
===== Obiekt szablon, czyli typu SZABLON =====
W tej funkcji sprawdzamy też obiekt: {{Code|SZABLON}}, przy pomocy funkcji: {{Code|{{sr|#p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON|p=Szablonowe}}}}, dla szablonów centrowania tabelą {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, wtedy ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{Code|czy_centrowanie}} {{Patrz|czy_centrowanie}}, na wartości {{Code|true}}. Potem uruchamiamy funkcję dla niej: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, co potem ta funkcja zwraca wartość {{Code|true}}. A dla szablonów będących linkami sprawdzamy za pomocą kluczy w tabelach: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}} i {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}, lub funkcją {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=SronicowyParser/Potrzebne}}}}, a jeżeli któreś z nich zwróci wartość {{Code|true}}, wtedy przy istnieniu zmiennej: {{Code|rozdział}}, zmienne: {{Code|poczatek}}, {{Code|rozdzial}} i {{Code|numeracja}}, przyjmują {{ZobaczTeż|nilowanie-rozdział}} wartość {{Code|nil}}, wtedy ta funkcja w iteratorze zwraca wartość {{Code|true}}. A wiec wtedy na podstawie tej wartości prawdziwej, funkcja iteratorze zwraca wartość domyślnie nilową, a więc wtedy przy uruchomieniu tego iteratora pętla się zatrzymuje.
===== Obiekty znacznikowe '''HTML''', czyli typu ZNACZNIK =====
Gdy obiekt jest równy: {{Code|ZNACZNIK}}, wtedy używamy funkcji: {{Code|{{sr|#p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika|p=StronicowyParser/Potrzebne}}}}, do zwracania nazwy, zawartości i atrybutów. Dla zawartości nienilowej, sprawdzane, czy znacznikiem jest: {{Tag|center}}, czy jednych ze znaczników wynikających z tabeli: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W tym pierwwszym ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{LinkPatrz|czy_centrowanie}}}, na wartość {{Code|true}}, i zwracamy do funkcji w iteratorze wartość {{Code|nil}}, a w tym drugim wypadku zmienna: {{LinkPatrz|ze_specialnymi_obiektami}}, przyjmuje wartość {{Code|true}}, a: {{Code|czy_znaczniki_hn}} {{Patrz|czy_znaczniki_hn}}, przyjmuje też to samo, i to samo jest zwracane, co w pierwszym. A w obu tych przypadkach uruchamiana jest funkcja: {{LinkŚródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}.
===== Linki wewnętrzne i zewnętrzne =====
Gdy mamy obiekt: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy zmiennej {{LinkPatrz|ze_specialnymi_obiektami}} przydzielana jest wartość {{Code|true}}, i przy istnieniu zmiennej {{Code|rozdział}}, inne zmienne takie jak w: {{LinkZobaczTeż|nilowanie-rozdział}}, są tak inicjowane jak tam.
==== Wartości zwracane przez funkcję w przypadku wykrycia rozdziału ====
Funkcja, gdy nie wykryła rozdziału, to zwraca wartość {{Code|nil}}, w przypadku jego rozpoznania, mamy coś w rozdziaju {{Patrz|procedura zwracania ogólnie wartości}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja,czy_centrowany_rozdzial;
</syntaxhighlight>
Parametry zwracane przez funkcję zwracaną:
* {{Code|linia}} - rozwarzana linia zwracana przez funkcję,
* {{Code|rozdzial}} - wyodrębiony rozdział, bez początku listy i numeracji,
* {{Code|(#poczatek*(-1))}} - ogólnie dla rozdziałów ujemnych lub zerowych, lub ogólnie {{Code|numer_rozdziału_wartosc_ujemna_lub_dodatnia}} - numer rozdziału dodatniego, ujemnego, czy zerowego, jeżeli w ogóle ona jest rozdziałem, generowanym przez daną linię,
* {{Code|poczatek}} - znaki początka listy, lub {{Code|nil}},
* {{Code|numeracja}} - numeracja rozdziału, znajdująca się na samym jej poczatku, w przypadku pozycji listy, tuz za tymi znakami,
* {{Code|czy_centrowany_rozdzial}} - zwracane wartości {{Code|true/nil}}, wartość prawdziwą, gdy wykryto rozdział centrowany szablonowo, czy znaczniowo, przeciwnym wypadku jest zwracana wartość {{Code|nil}}.
Funkcja na wiele sposobów może wskazywać, czy rozdział niedodatni jest rozdziałem, lub zwracać wartość {{Code|nil}}, gdy jest tylko zwykłą linią, a nie rozdziałem w żadnym wypadku. W w przypadku rozdziałów dodatnich równaniowych, one są zawsze rozdziałami, ale to nie jest kwestią tej funkcji, ale za to jest dla rozdziałów centrowanych znacznikowych lub szablonowych, one nie zawsze są rozdziałami, czasami są zwykłym tekstem, bo nie należy do spisu, albo ma dziwną zawartość. A w przypadku rozdziałów nagłówkowych generowanych przez znaczniki typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jeżżeli zawierają zawartość niepustą, to są rozdziałami dodatnimi, wylrywane przez tą funkcję, jako nierównaniowe.
===== Brak obiektów specjalnych linii, które sugerują, że to nie jest jednak rozdział =====
Jeżeli ustawiony nie został parametr przez wcześniejsze wykonywanie iteracji parametr {{Code|ze_specialnymi_obiektami}} na wartość {{Code|true}}, gdy przed iteracją parametr {{Code|rozdział}} istniał, jeśli nie, wtedy wchodzimy do pierwszego rozkłazienia funkcji iteratora dla danej rozważanej linii.
Funkcja sprawdza, czy to jest rozdział zerowy przy użyciu funkcji {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}} w ten sposób otrzymamy zmienną rozdziału, jak to na pewno jest rozdziałem możliwym zerowym bez dalszych sprawdzeń. Funkcja następnie też rewiduje, czy ona posiada nieprzekroczoną liczbę z maksimum znaków, określonej przez zmienną {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}.
Funkcja, jeżeli weszła w ten krok instrukcji warunkowej, w takich przypadkach może zwrócić informację w zależności od jej definicji, że to jest jednak taki rozdział w odpowiedni sposób, w przeciwnym wypadku zwraca informację w postaci wartości nilowej, że jednak nim nie jest, czyli jest to zwykła linia tekstowa, a nie rozdział zerowy, jak przypuszczaliśmy.
W przypadku pozytywnego rozeznania jest sprawdzene, czy rozdział przed cudzysłowem końcy się na znaki iterpunkcyjne, w języku polskim, a jeżeli nie, to funkcja zwraca wartość {{Patrz|bez obiektów zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,0,nil,numeracja;
</syntaxhighlight>
Sprawdzane jest, czy wartości zmiennych {{Code|poczatek}} i {{Code|numeracja}}, czy są nepuste. A gdy nie ma początku, lub jest, ale jest on pusty, oraz jednocześnie, nie ma numeracji, lub numeracja jest zero, wtedy funkcja iteratora zwraca {{Code|nil}}. Przeciwnie, jeśli przed cudzysłowem nie ma znakow iterpunkcyjnych, funkcja zwraca podobny wynik do: {{LinkPatrz|bez obiektów zwracane}}.
W pozostałych wypadkach funkcja zwraca wartość {{Code|nil}}.
===== Rozdziały centrowane =====
Gdy zmienna {{LinkPatrz|czy_centrowanie}}, uzyskaną z iteracji, a także {{LinkPatrz|tak_ce_spis_tresci}}, wstawianej jako drugi parametr iteratora, czy uwzględniać rozdziały centrowane, jeśli przyjmuje wartość nieprawdziwą, to wtedy funkcja iteratora zwraca zawsze {{Code|nil}}, w tym przypadku, przeciwnie, a jeżeli rozdział i numeracja jednocześnie nie istnieją, to funkcja ogólnie zwraca {{Code|nil}}.
Przy istnieniu rozdziału centrowanego w linii, funkcja zwróci taki rozdział, jeżeli zmienna rozdziału i numeracji istnieją, ale któreś z nich nie może może być puste. Poziom rozdziału jest wtedy {{Code|2}}. A zmienna, czy to jest rozdział centrowany, przyjmuje wartość {{Code|true}}.
Wartości zwracane przez funkcję w przypadku rozdziałów centrowanych {{Patrz|centrowane_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,2,nil,numeracja,true;
</syntaxhighlight>
===== Rozdział nagłówka ze znacznikami {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}=====
Jest podobny przypadek rozpatrywania, jak przy rozdziałach centrowania, poziom rozdziału jest okreslany przez funkcję: {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, a to nie jest rozdział centrowany, tylko nagłówkowy. W tym przypadku zmienna {{LinkPatrz|czy_znaczniki_hn}} przyjmuje wartość odpowiadającej prawdziwej.
Wynik w tym wypadku est zwracany {{Patrz|znaczniki_hn_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
</syntaxhighlight>
===== Pozostałe rozdziały (ujemne), które zostały podseperowane, że jednak mogą być rozdziałami, a nie zwykłym tekstem - rozdziały niedwukropkowe (listy niezaczynające się od: {{Code|:}})=====
Wtedy funkcja sprawdza również, czy taki rozdział nie ma przekroczonego maksimum znaków, tzn. {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}. Ta część dokonuje też dalszych sprawdzeń, co na podstawie tego taki rozdział zaliczać do rozdziału ujemnego (wtedy jest zwracany szereg wartości), czy do zwykłego tekstu (wtedy jest zwracana tylko wartość {{Code|nil}}).
Sprawdzane jest {{ZobaczTeż|rozdział niedwukropkowy zwracane}}, czy jest to rozdział dwukropkowy, przy pomocy funkcji: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|b=tak}}}}, jeżeli nie jest, to jest dalej sprawdzane, czy rozdział ma początek równy znakom listy, lub przed cudzysłowem (w ramach cudzysłowu) ma znaki interpunkcyjne, a jeżeli nie ma, to zwracany jest wynik ogólny {{Patrz|rozdział niedwukropkowy zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
</syntaxhighlight>
{{tab}}W innym wypadku, jeżeli poczatek linii, lub nawet numeracja, jeśli któreś z nich nie istnieją lub są puste, wtedy funkcja zwraca {{Code|nil}}, przeciwnie jest sprawdzane, co w punkcje {{LinkZobaczTeż|rozdział niedwukropkowy zwracane}} i zwracany jest wynik jak: {{LinkPatrz|rozdział niedwukropkowy zwracane}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
movk7bztxvrj7znw4trqinep6y69hkg
551356
551355
2026-08-11T12:39:59Z
Persino
2851
/* Wartości zwracane przez funkcję w przypadku wykrycia rozdziału */
551356
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} ==
Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end;
</syntaxhighlight>
Funkcja nie przyjmuje żadnego parametru.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony();
</syntaxhighlight>
Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku.
== {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
...
return function(linia,tak_ce_spis_tresci)
... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane.
return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
Parametry funkcji zwracanej:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział,
* {{Code|tak_ce_spis_tresci}} {{Patrz|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej.
Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość:
* {{Code|linia_temp}} {{Patrz|linia_temp}} - rozważana linia,
* {{Code|nazwa_rozdzialu}} {{Patrz|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii,
* {{Code|poziom_rozdziału}} {{Patrz|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} {{Patrz|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}},
* {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}},
* {{Code|numeracja_rozdzialu}} {{Patrz|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi,
* {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} - czy rozdział napisany jako szablonowo lub znacznikowo, jeśli jest centrowany, to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tablica_analizy_obiektow_strony_dany_modul={};
local linia="<h6>Nagłówek</h6>";
linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
local tab_nazwa_spisow_przekierowaniowych={};
local nazwa_przestrzeni="";
local nazwa_przestrzeni_ksiazki="";
local nazwa_ksiazki="Książki";
local nazwa_spisu_tresci="";
local pelna_nazwa_spisu_tresci_szablonowa="";
local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
end;
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Funkcja zwraca wyniki:
<syntaxhighlight lang="lua">
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil;
</syntaxhighlight>
=== Wartości początkowe przyjmowane przez funkcję ===
Wartością początkową przyjmowaną jedyną jest zmienna {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=70;
</syntaxhighlight>
Ona mówi, jaką szerokość może mieć maksymalną rozdział zerowy, czy nawet ujemny, aby został uznany za prawdziwy rozdział.
Reszta zmiennych przyjmuje wartości poczatkowe, jako nilowe, jak to jest przy deklaracji zmiennych w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== Tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Przedstawione tutaj tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a opisane w: {{Code|{{sr|StronicowyParser/obiekty}}}}.
==== {{Śródtytuł|Szablony centrowania}}Szablony centrowania ====
Funkcja wykorzystuje tabelę: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, o:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Z którego się dowiadujemy, z jakimi szablonami centrowania mamy do czynienia w tej funkcji, funkcja je wykrywa i ustawia, że dla tej linii z nim ją wykrył, niezależnie, jakie linki wewnątrz posiada.
==== Szablony linków wewnętrznych artykularne tworzące spis rzeczy szablonowe ====
Jeżeli w linii wykryto te szablony zamiast szablonów centrowania, to wiadomo, że ona nie stanowi rozdziału w liniach, które mają być rozdziałami ujemnymi lub zerowymi. Do tego celu służą linki zdfiniowane w tablicach, które są napisane w podrozdziałach poniżej.
===== Pierwszego typu - linki inteligentne =====
Następną tablicą: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
===== Drugiego typu - szablony tworzenia spisu rzeczy =====
Tą tablicą jest: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
==== Znaczniki wprowadzenia tekstu ====
Ta tablica: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, zawiera definicję znaczników różnych nagłówków, zdefiniowaną tam.
Są to znaczniki {{Strong|HTML}} o możliwych pozimach od: {{Code|1}} do {{Code|6}}, jakie ta funkcja ma wykrywać, żeby uznać tą linię za rozdział, niezależnie, jakie linki wewnątrz znacznika są zdefiniowane.
Poziomy większe od {{Code|6}} są jedynie możliwe za pomocą szablonu {{s|HNumer}}.
==== Rozdziały dodatnie centrowane znacznikowe i szablonowe, które uznać za nie rozdziały ====
Linie, które zostały uznane za rozdziały, można uznać, że takie nie są, jeżeli zawierają one szablony zdefiniowane w tablicy: {{Code|{{sr|#p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}:
<syntaxhighlight lang="lua">
p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={
["Rozdział"]=true,
["Podrozdział"]=true,
["MapaObrazu"]=true,
};
</syntaxhighlight>
Rozdziały te, które zostały uznane za nierozdziały, powoduje to, że iterator tej funkcji wtedy dla ściśle określonej linii zwróci wartość {{Code|nil}}, a nie konkretne wartości, które by świadczyły o rozdziale centrowanym. Szablony centrowania szablonowego są zdefiniowane w: {{LinkŚródtytuł|Szablony centrowania}}, a znaczniki to są po prostu w postaci definicji: {{Tag|center}}.
==== Funkcje lokalne ====
===== {{Śródtytuł|LiniaCydzyslow}}{{Code|LiniaCydzyslow}} =====
Fukcja wyszukuje, czy rozdział jest pomiędzy cudzysłowami, a jeżeli nie, to zwraca {{Code|false}}, w przeciwnym wypadku sprawdzamy dalej, jeżeli rozdział pasuje do tego, że on składa się z samych liter dużych z możliwymi odstępami, oraz w rozdziale można wyróżnić pojedyńcze litery duże, lub ta duża pojedyncza znajduje sie na początku rozdziału, bądź na jej końcu, wtedy funkcja zwraca wartość odpowiadającej wartości fałszu, a jęzeli nie, to prawdy.
===== {{Śródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}{{Code|WykluczenieNieodpowiednichNormSzablonowych}} =====
Funkcja zwraca {{Code|true}}, gdy dało się wykluczyć nieodpowiednie norm szablonowe, w przeciwnym wypadku {{Code|nil}}, to ostatnie właśnie to jest zwracane, gdy obiekt szablonowy jest z kodem o obiektami: {{Code|GALERIA}}, {{Code|ŹRÓDŁO}}, {{Code|PRE}}, {{Code|INNEPRE}}, {{Code|WIKITABELA}} lub {{Code|MAPAOBRAZU}}, albo on jest szablonem normalnym o obiekcie: {{Code|SZABLON}}, którego nazwy pasują do nazw kluczy tabeli: {{LinkPatrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}.
===== {{Śródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}{{Code|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}} =====
Funkcja słuzy do rewidowania zawartości szablonu, ukrytą pod pewnym parametrem, czy znacznika, oczywiście centrowania, czy ona jest: {{Code|<nowiki>^%s*%d+%s*/%s*%d+%</nowiki>}} (czyli rozdziały składające się z dwóch liczb oddzielonych prawym ukośnikiem), a jeśli nie, to czy: {{Code|<nowiki>!%s*'*%s*$</nowiki>}} (na końcu przed ewentualnie cudzysłowem znajduje się wykrzyknik), w takich przypadkach zawsze zwracanajest wartość {{Code|nil}}, jeżeli się funkcja zakańcza, jeżeli sprawdzenie przeszło pomyślnie.
Jeśli ona się nie zakończyła przedwcześnie, wtedy liczy zmienne, tutaj nielokalne, rozdział {{Code|rozdzial}} i numerację {{Code|numeracja}} z: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}} {{Patrz|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ze zmiennej testowej, ktorą jest pojedyncza linia bez znaków listy, a jeżeli tak z policzonego ze zmiennej rozdziału funkcja: {{LinkŚródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}, nie wyklucza niczgo, tzn. zaprzeczenie zwrócone przez tą funkcję przyjmuje wartość prawdziwą - czyli w tekście sprawdzamy występują te specjalne znaki, wtedy zmienne: {{Code|numeracja}} i {{Code|rozdział}, są przyrównywane do wartości {{Code|nil}}, przeciwnym wypadku funkcja nic nie robi.
===== {{Śródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}{{Code|NiestardardoweSzablonoweWprowdzeniaTekstu}} =====
Funkcja sprawdza zawartość szablonu jakiegoś centrowania. Funkcja rewiduje, czy nazwa tego szablonu, czy jest rzeczywiście szablonem centrowania według tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, a jeżeli tak, z tej tabeli jest liczony klucz zmiennej jego zawartości tabeli parametrów szablonow, pod którym jest ukryta jego zawartość liczona z tabeli parametrów szablonu, co ta zawartartość jest sprawdzana później przez funkcję: {{LinkŚródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}, która możliwie niluje odpowiednio dwie zmienne, jeżeli zajdzie taka potrzeba.
===== {{Śródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}{{Code|NiestardardoweZnacznikoweWprowdzeniaTekstu}} =====
To samo, co dla funkcji: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, tylko że, tym razem nie dla szablonów centrowania, tylko dla znaczników centrowania {{Tag|center}}, ale też dla znaczników wprowadzenia tekstu opisywanych przez tabelę: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Początek (znaki specjalne początku pozycji listy) i rozdział z możliwą numeracją ====
Funkcja wyodrębnia początek i rozdział z możliwą numeracją od siebie na linii z pozycją listy. Jeżeli tego się nie dało wyodrębnić, to mamy wtedy prawdopodobnie rozdział zerowy, ale nie musi być, może być to zwykła linia tekstowa pewnego napisu wprowadzenia tekstu. W takim przypadku funkcja liczy rozdział z numeracją lub wyodrębnia to z tego otoczonego cudzysłowami.
==== Badanie jaki to jest rozdział ====
===== Rozdział zerowy =====
====== Sukces wyodrębnianiu rozdziału ======
Jeżeli to dało się wyodrębnić {{ZobaczTeż|rozdział}}, to przyjmujemy, że zmienna {{Code|poczatek}} jest równa ciągowi znakowemu pustemu, a z rozdziału numeracji usuwamy znaki specjalne dzięki {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, dalej są usuwane odstępy z początku i końca tego czegoś i na podstawie tego jest wyznaczany rozdział i numeracja z tak uzyskanemu szeregu.
====== Brak numeracji rozdziału ======
{{HNumer|1=
======= Wykryta linia cudzysłowu =======
}}
Jest sprawdzane, czy to jest linia z cudzysłowem na podstawie {{LinkŚródtytuł|LiniaCydzyslow}}, a jeżeli funkcja zrzuci wartość odpowiadającą prawdziwej wartości, wtedy rozdział jest równy linii, a poczatek i numeracja są równe ciągowi pustemu.
{{HNumer|1=
======= Adresu URL linii =======
}}
W innym wypadku, gdy poprzedni warunek nie jest spełniony, sprawdzamy, czy któreś z poszczególnych ciągów z czarnymi znakami są adresami z {{Strong|URL}}, a jeżeli tak, to wtedy są tak samo inicjowane zmienne.
===== Rozdział będący rozdziałem pozycji listy (rozdział niezerowy) =====
Gdy nie jest spełniony warunek {{LinkZobaczTeż|rozdział}}, to wtedy to samo robimy, co tam, tylko bez znaków początku pozycji listy, który usunęliśmy z linii, rozdzielając na dwa łańcuchy znaków, tzn. rozdział i numerację.
==== Uzyskany istniejący rozdział ====
Jeżeli uzyskamy rozdział istnieje, to zmienna {{Code|ze_specialnymi_obiektami}} {{Patrz|ze_specialnymi_obiektami}} przyjmuje wartość {{Code|true}}, a zmienna {{Code|tekst}} jest równa uzyskanemu rozdziałowi bez numeracji, w przeciwnym wypadku jest równy linii {{Code|linia}} podanemu do funkcji.
==== Iterator po zawartości tekstu linii prawdopodobnego rozdziału ====
Uruchamiamy iterator: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, któr zwraca fukcję iteratora po zmiennej {{Code|tekst}} z pierwszą funkcją, która powoduje, że ona jak zwróci wartość {{Code|nil}}, to natychmiast się zakańcza, lub to robi po zakończeniu zasobów danych.
===== Możliwe operacje robione przez funkcję iteratora =====
Funkcja dopuszcza rozdziały z pozycją listy, poczatek linii ma znaki listy tzn. {{Code|<nowiki>[%*#;:]</nowiki>}}, wtedy mamy doczynienia z mozliwy rozdziałem ujemnym, ale to nie musi byc rzeczywiście rozdziałem, linia nie musi być częścią listy, wtedy mamy rozdział z możliwą numeracją, ale z drugiej strony w tych dwóch poprzednich wypadkach, nawet numeracji nie musi być, aby był przez tą funkcją zwracaną, uznanym, że to może być rozdział, albo normalną linią.
===== Obiekt szablon, czyli typu SZABLON =====
W tej funkcji sprawdzamy też obiekt: {{Code|SZABLON}}, przy pomocy funkcji: {{Code|{{sr|#p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON|p=Szablonowe}}}}, dla szablonów centrowania tabelą {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, wtedy ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{Code|czy_centrowanie}} {{Patrz|czy_centrowanie}}, na wartości {{Code|true}}. Potem uruchamiamy funkcję dla niej: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, co potem ta funkcja zwraca wartość {{Code|true}}. A dla szablonów będących linkami sprawdzamy za pomocą kluczy w tabelach: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}} i {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}, lub funkcją {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=SronicowyParser/Potrzebne}}}}, a jeżeli któreś z nich zwróci wartość {{Code|true}}, wtedy przy istnieniu zmiennej: {{Code|rozdział}}, zmienne: {{Code|poczatek}}, {{Code|rozdzial}} i {{Code|numeracja}}, przyjmują {{ZobaczTeż|nilowanie-rozdział}} wartość {{Code|nil}}, wtedy ta funkcja w iteratorze zwraca wartość {{Code|true}}. A wiec wtedy na podstawie tej wartości prawdziwej, funkcja iteratorze zwraca wartość domyślnie nilową, a więc wtedy przy uruchomieniu tego iteratora pętla się zatrzymuje.
===== Obiekty znacznikowe '''HTML''', czyli typu ZNACZNIK =====
Gdy obiekt jest równy: {{Code|ZNACZNIK}}, wtedy używamy funkcji: {{Code|{{sr|#p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika|p=StronicowyParser/Potrzebne}}}}, do zwracania nazwy, zawartości i atrybutów. Dla zawartości nienilowej, sprawdzane, czy znacznikiem jest: {{Tag|center}}, czy jednych ze znaczników wynikających z tabeli: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W tym pierwwszym ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{LinkPatrz|czy_centrowanie}}}, na wartość {{Code|true}}, i zwracamy do funkcji w iteratorze wartość {{Code|nil}}, a w tym drugim wypadku zmienna: {{LinkPatrz|ze_specialnymi_obiektami}}, przyjmuje wartość {{Code|true}}, a: {{Code|czy_znaczniki_hn}} {{Patrz|czy_znaczniki_hn}}, przyjmuje też to samo, i to samo jest zwracane, co w pierwszym. A w obu tych przypadkach uruchamiana jest funkcja: {{LinkŚródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}.
===== Linki wewnętrzne i zewnętrzne =====
Gdy mamy obiekt: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy zmiennej {{LinkPatrz|ze_specialnymi_obiektami}} przydzielana jest wartość {{Code|true}}, i przy istnieniu zmiennej {{Code|rozdział}}, inne zmienne takie jak w: {{LinkZobaczTeż|nilowanie-rozdział}}, są tak inicjowane jak tam.
==== Wartości zwracane przez funkcję w przypadku wykrycia rozdziału ====
Funkcja, gdy nie wykryła rozdziału, to zwraca wartość {{Code|nil}}, w przypadku jego rozpoznania, mamy coś w rozdziaju {{Patrz|procedura zwracania ogólnie wartości}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja,czy_centrowany_rozdzial;
</syntaxhighlight>
Parametry zwracane przez funkcję zwracaną:
* {{Code|linia}} - rozwarzana linia zwracana przez funkcję,
* {{Code|rozdzial}} - wyodrębiony rozdział, bez początku listy i numeracji,
* {{Code|(#poczatek*(-1))}} - ogólnie dla rozdziałów ujemnych lub zerowych, lub ogólniej: {{Code|numer_rozdziału_wartosc_ujemna_lub_dodatnia}} - numer rozdziału dodatniego, ujemnego, czy zerowego, jeżeli w ogóle ona jest rozdziałem, generowanym przez daną linię,
* {{Code|poczatek}} - znaki początka listy, lub {{Code|nil}},
* {{Code|numeracja}} - numeracja rozdziału, znajdująca się na samym jej poczatku, w przypadku pozycji listy, tuz za tymi znakami,
* {{Code|czy_centrowany_rozdzial}} - zwracane wartości {{Code|true/nil}}, wartość prawdziwą, gdy wykryto rozdział centrowany szablonowo, czy znaczniowo, przeciwnym wypadku jest zwracana wartość {{Code|nil}}.
Funkcja na wiele sposobów może wskazywać, czy rozdział niedodatni jest rozdziałem, lub zwracać wartość {{Code|nil}}, gdy jest tylko zwykłą linią, a nie rozdziałem w żadnym wypadku. W w przypadku rozdziałów dodatnich równaniowych, one są zawsze rozdziałami, ale to nie jest kwestią tej funkcji, ale za to jest dla rozdziałów centrowanych znacznikowych lub szablonowych, one nie zawsze są rozdziałami, czasami są zwykłym tekstem, bo nie należy do spisu, albo ma dziwną zawartość. A w przypadku rozdziałów nagłówkowych generowanych przez znaczniki typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jeżżeli zawierają zawartość niepustą, to są rozdziałami dodatnimi, wylrywane przez tą funkcję, jako nierównaniowe.
===== Brak obiektów specjalnych linii, które sugerują, że to nie jest jednak rozdział =====
Jeżeli ustawiony nie został parametr przez wcześniejsze wykonywanie iteracji parametr {{Code|ze_specialnymi_obiektami}} na wartość {{Code|true}}, gdy przed iteracją parametr {{Code|rozdział}} istniał, jeśli nie, wtedy wchodzimy do pierwszego rozkłazienia funkcji iteratora dla danej rozważanej linii.
Funkcja sprawdza, czy to jest rozdział zerowy przy użyciu funkcji {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}} w ten sposób otrzymamy zmienną rozdziału, jak to na pewno jest rozdziałem możliwym zerowym bez dalszych sprawdzeń. Funkcja następnie też rewiduje, czy ona posiada nieprzekroczoną liczbę z maksimum znaków, określonej przez zmienną {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}.
Funkcja, jeżeli weszła w ten krok instrukcji warunkowej, w takich przypadkach może zwrócić informację w zależności od jej definicji, że to jest jednak taki rozdział w odpowiedni sposób, w przeciwnym wypadku zwraca informację w postaci wartości nilowej, że jednak nim nie jest, czyli jest to zwykła linia tekstowa, a nie rozdział zerowy, jak przypuszczaliśmy.
W przypadku pozytywnego rozeznania jest sprawdzene, czy rozdział przed cudzysłowem końcy się na znaki iterpunkcyjne, w języku polskim, a jeżeli nie, to funkcja zwraca wartość {{Patrz|bez obiektów zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,0,nil,numeracja;
</syntaxhighlight>
Sprawdzane jest, czy wartości zmiennych {{Code|poczatek}} i {{Code|numeracja}}, czy są nepuste. A gdy nie ma początku, lub jest, ale jest on pusty, oraz jednocześnie, nie ma numeracji, lub numeracja jest zero, wtedy funkcja iteratora zwraca {{Code|nil}}. Przeciwnie, jeśli przed cudzysłowem nie ma znakow iterpunkcyjnych, funkcja zwraca podobny wynik do: {{LinkPatrz|bez obiektów zwracane}}.
W pozostałych wypadkach funkcja zwraca wartość {{Code|nil}}.
===== Rozdziały centrowane =====
Gdy zmienna {{LinkPatrz|czy_centrowanie}}, uzyskaną z iteracji, a także {{LinkPatrz|tak_ce_spis_tresci}}, wstawianej jako drugi parametr iteratora, czy uwzględniać rozdziały centrowane, jeśli przyjmuje wartość nieprawdziwą, to wtedy funkcja iteratora zwraca zawsze {{Code|nil}}, w tym przypadku, przeciwnie, a jeżeli rozdział i numeracja jednocześnie nie istnieją, to funkcja ogólnie zwraca {{Code|nil}}.
Przy istnieniu rozdziału centrowanego w linii, funkcja zwróci taki rozdział, jeżeli zmienna rozdziału i numeracji istnieją, ale któreś z nich nie może może być puste. Poziom rozdziału jest wtedy {{Code|2}}. A zmienna, czy to jest rozdział centrowany, przyjmuje wartość {{Code|true}}.
Wartości zwracane przez funkcję w przypadku rozdziałów centrowanych {{Patrz|centrowane_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,2,nil,numeracja,true;
</syntaxhighlight>
===== Rozdział nagłówka ze znacznikami {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}=====
Jest podobny przypadek rozpatrywania, jak przy rozdziałach centrowania, poziom rozdziału jest okreslany przez funkcję: {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, a to nie jest rozdział centrowany, tylko nagłówkowy. W tym przypadku zmienna {{LinkPatrz|czy_znaczniki_hn}} przyjmuje wartość odpowiadającej prawdziwej.
Wynik w tym wypadku est zwracany {{Patrz|znaczniki_hn_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
</syntaxhighlight>
===== Pozostałe rozdziały (ujemne), które zostały podseperowane, że jednak mogą być rozdziałami, a nie zwykłym tekstem - rozdziały niedwukropkowe (listy niezaczynające się od: {{Code|:}})=====
Wtedy funkcja sprawdza również, czy taki rozdział nie ma przekroczonego maksimum znaków, tzn. {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}. Ta część dokonuje też dalszych sprawdzeń, co na podstawie tego taki rozdział zaliczać do rozdziału ujemnego (wtedy jest zwracany szereg wartości), czy do zwykłego tekstu (wtedy jest zwracana tylko wartość {{Code|nil}}).
Sprawdzane jest {{ZobaczTeż|rozdział niedwukropkowy zwracane}}, czy jest to rozdział dwukropkowy, przy pomocy funkcji: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|b=tak}}}}, jeżeli nie jest, to jest dalej sprawdzane, czy rozdział ma początek równy znakom listy, lub przed cudzysłowem (w ramach cudzysłowu) ma znaki interpunkcyjne, a jeżeli nie ma, to zwracany jest wynik ogólny {{Patrz|rozdział niedwukropkowy zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
</syntaxhighlight>
{{tab}}W innym wypadku, jeżeli poczatek linii, lub nawet numeracja, jeśli któreś z nich nie istnieją lub są puste, wtedy funkcja zwraca {{Code|nil}}, przeciwnie jest sprawdzane, co w punkcje {{LinkZobaczTeż|rozdział niedwukropkowy zwracane}} i zwracany jest wynik jak: {{LinkPatrz|rozdział niedwukropkowy zwracane}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
67miwah66k07igavl6zbk20strz8f7b
551357
551356
2026-08-11T12:40:30Z
Persino
2851
/* Wartości zwracane przez funkcję w przypadku wykrycia rozdziału */
551357
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} ==
Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end;
</syntaxhighlight>
Funkcja nie przyjmuje żadnego parametru.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony();
</syntaxhighlight>
Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku.
== {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
...
return function(linia,tak_ce_spis_tresci)
... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane.
return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
Parametry funkcji zwracanej:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział,
* {{Code|tak_ce_spis_tresci}} {{Patrz|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej.
Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość:
* {{Code|linia_temp}} {{Patrz|linia_temp}} - rozważana linia,
* {{Code|nazwa_rozdzialu}} {{Patrz|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii,
* {{Code|poziom_rozdziału}} {{Patrz|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} {{Patrz|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}},
* {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}},
* {{Code|numeracja_rozdzialu}} {{Patrz|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi,
* {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} - czy rozdział napisany jako szablonowo lub znacznikowo, jeśli jest centrowany, to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tablica_analizy_obiektow_strony_dany_modul={};
local linia="<h6>Nagłówek</h6>";
linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
local tab_nazwa_spisow_przekierowaniowych={};
local nazwa_przestrzeni="";
local nazwa_przestrzeni_ksiazki="";
local nazwa_ksiazki="Książki";
local nazwa_spisu_tresci="";
local pelna_nazwa_spisu_tresci_szablonowa="";
local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
end;
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Funkcja zwraca wyniki:
<syntaxhighlight lang="lua">
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil;
</syntaxhighlight>
=== Wartości początkowe przyjmowane przez funkcję ===
Wartością początkową przyjmowaną jedyną jest zmienna {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=70;
</syntaxhighlight>
Ona mówi, jaką szerokość może mieć maksymalną rozdział zerowy, czy nawet ujemny, aby został uznany za prawdziwy rozdział.
Reszta zmiennych przyjmuje wartości poczatkowe, jako nilowe, jak to jest przy deklaracji zmiennych w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== Tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Przedstawione tutaj tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a opisane w: {{Code|{{sr|StronicowyParser/obiekty}}}}.
==== {{Śródtytuł|Szablony centrowania}}Szablony centrowania ====
Funkcja wykorzystuje tabelę: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, o:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Z którego się dowiadujemy, z jakimi szablonami centrowania mamy do czynienia w tej funkcji, funkcja je wykrywa i ustawia, że dla tej linii z nim ją wykrył, niezależnie, jakie linki wewnątrz posiada.
==== Szablony linków wewnętrznych artykularne tworzące spis rzeczy szablonowe ====
Jeżeli w linii wykryto te szablony zamiast szablonów centrowania, to wiadomo, że ona nie stanowi rozdziału w liniach, które mają być rozdziałami ujemnymi lub zerowymi. Do tego celu służą linki zdfiniowane w tablicach, które są napisane w podrozdziałach poniżej.
===== Pierwszego typu - linki inteligentne =====
Następną tablicą: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
===== Drugiego typu - szablony tworzenia spisu rzeczy =====
Tą tablicą jest: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
==== Znaczniki wprowadzenia tekstu ====
Ta tablica: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, zawiera definicję znaczników różnych nagłówków, zdefiniowaną tam.
Są to znaczniki {{Strong|HTML}} o możliwych pozimach od: {{Code|1}} do {{Code|6}}, jakie ta funkcja ma wykrywać, żeby uznać tą linię za rozdział, niezależnie, jakie linki wewnątrz znacznika są zdefiniowane.
Poziomy większe od {{Code|6}} są jedynie możliwe za pomocą szablonu {{s|HNumer}}.
==== Rozdziały dodatnie centrowane znacznikowe i szablonowe, które uznać za nie rozdziały ====
Linie, które zostały uznane za rozdziały, można uznać, że takie nie są, jeżeli zawierają one szablony zdefiniowane w tablicy: {{Code|{{sr|#p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}:
<syntaxhighlight lang="lua">
p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={
["Rozdział"]=true,
["Podrozdział"]=true,
["MapaObrazu"]=true,
};
</syntaxhighlight>
Rozdziały te, które zostały uznane za nierozdziały, powoduje to, że iterator tej funkcji wtedy dla ściśle określonej linii zwróci wartość {{Code|nil}}, a nie konkretne wartości, które by świadczyły o rozdziale centrowanym. Szablony centrowania szablonowego są zdefiniowane w: {{LinkŚródtytuł|Szablony centrowania}}, a znaczniki to są po prostu w postaci definicji: {{Tag|center}}.
==== Funkcje lokalne ====
===== {{Śródtytuł|LiniaCydzyslow}}{{Code|LiniaCydzyslow}} =====
Fukcja wyszukuje, czy rozdział jest pomiędzy cudzysłowami, a jeżeli nie, to zwraca {{Code|false}}, w przeciwnym wypadku sprawdzamy dalej, jeżeli rozdział pasuje do tego, że on składa się z samych liter dużych z możliwymi odstępami, oraz w rozdziale można wyróżnić pojedyńcze litery duże, lub ta duża pojedyncza znajduje sie na początku rozdziału, bądź na jej końcu, wtedy funkcja zwraca wartość odpowiadającej wartości fałszu, a jęzeli nie, to prawdy.
===== {{Śródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}{{Code|WykluczenieNieodpowiednichNormSzablonowych}} =====
Funkcja zwraca {{Code|true}}, gdy dało się wykluczyć nieodpowiednie norm szablonowe, w przeciwnym wypadku {{Code|nil}}, to ostatnie właśnie to jest zwracane, gdy obiekt szablonowy jest z kodem o obiektami: {{Code|GALERIA}}, {{Code|ŹRÓDŁO}}, {{Code|PRE}}, {{Code|INNEPRE}}, {{Code|WIKITABELA}} lub {{Code|MAPAOBRAZU}}, albo on jest szablonem normalnym o obiekcie: {{Code|SZABLON}}, którego nazwy pasują do nazw kluczy tabeli: {{LinkPatrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}.
===== {{Śródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}{{Code|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}} =====
Funkcja słuzy do rewidowania zawartości szablonu, ukrytą pod pewnym parametrem, czy znacznika, oczywiście centrowania, czy ona jest: {{Code|<nowiki>^%s*%d+%s*/%s*%d+%</nowiki>}} (czyli rozdziały składające się z dwóch liczb oddzielonych prawym ukośnikiem), a jeśli nie, to czy: {{Code|<nowiki>!%s*'*%s*$</nowiki>}} (na końcu przed ewentualnie cudzysłowem znajduje się wykrzyknik), w takich przypadkach zawsze zwracanajest wartość {{Code|nil}}, jeżeli się funkcja zakańcza, jeżeli sprawdzenie przeszło pomyślnie.
Jeśli ona się nie zakończyła przedwcześnie, wtedy liczy zmienne, tutaj nielokalne, rozdział {{Code|rozdzial}} i numerację {{Code|numeracja}} z: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}} {{Patrz|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ze zmiennej testowej, ktorą jest pojedyncza linia bez znaków listy, a jeżeli tak z policzonego ze zmiennej rozdziału funkcja: {{LinkŚródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}, nie wyklucza niczgo, tzn. zaprzeczenie zwrócone przez tą funkcję przyjmuje wartość prawdziwą - czyli w tekście sprawdzamy występują te specjalne znaki, wtedy zmienne: {{Code|numeracja}} i {{Code|rozdział}, są przyrównywane do wartości {{Code|nil}}, przeciwnym wypadku funkcja nic nie robi.
===== {{Śródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}{{Code|NiestardardoweSzablonoweWprowdzeniaTekstu}} =====
Funkcja sprawdza zawartość szablonu jakiegoś centrowania. Funkcja rewiduje, czy nazwa tego szablonu, czy jest rzeczywiście szablonem centrowania według tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, a jeżeli tak, z tej tabeli jest liczony klucz zmiennej jego zawartości tabeli parametrów szablonow, pod którym jest ukryta jego zawartość liczona z tabeli parametrów szablonu, co ta zawartartość jest sprawdzana później przez funkcję: {{LinkŚródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}, która możliwie niluje odpowiednio dwie zmienne, jeżeli zajdzie taka potrzeba.
===== {{Śródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}{{Code|NiestardardoweZnacznikoweWprowdzeniaTekstu}} =====
To samo, co dla funkcji: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, tylko że, tym razem nie dla szablonów centrowania, tylko dla znaczników centrowania {{Tag|center}}, ale też dla znaczników wprowadzenia tekstu opisywanych przez tabelę: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Początek (znaki specjalne początku pozycji listy) i rozdział z możliwą numeracją ====
Funkcja wyodrębnia początek i rozdział z możliwą numeracją od siebie na linii z pozycją listy. Jeżeli tego się nie dało wyodrębnić, to mamy wtedy prawdopodobnie rozdział zerowy, ale nie musi być, może być to zwykła linia tekstowa pewnego napisu wprowadzenia tekstu. W takim przypadku funkcja liczy rozdział z numeracją lub wyodrębnia to z tego otoczonego cudzysłowami.
==== Badanie jaki to jest rozdział ====
===== Rozdział zerowy =====
====== Sukces wyodrębnianiu rozdziału ======
Jeżeli to dało się wyodrębnić {{ZobaczTeż|rozdział}}, to przyjmujemy, że zmienna {{Code|poczatek}} jest równa ciągowi znakowemu pustemu, a z rozdziału numeracji usuwamy znaki specjalne dzięki {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, dalej są usuwane odstępy z początku i końca tego czegoś i na podstawie tego jest wyznaczany rozdział i numeracja z tak uzyskanemu szeregu.
====== Brak numeracji rozdziału ======
{{HNumer|1=
======= Wykryta linia cudzysłowu =======
}}
Jest sprawdzane, czy to jest linia z cudzysłowem na podstawie {{LinkŚródtytuł|LiniaCydzyslow}}, a jeżeli funkcja zrzuci wartość odpowiadającą prawdziwej wartości, wtedy rozdział jest równy linii, a poczatek i numeracja są równe ciągowi pustemu.
{{HNumer|1=
======= Adresu URL linii =======
}}
W innym wypadku, gdy poprzedni warunek nie jest spełniony, sprawdzamy, czy któreś z poszczególnych ciągów z czarnymi znakami są adresami z {{Strong|URL}}, a jeżeli tak, to wtedy są tak samo inicjowane zmienne.
===== Rozdział będący rozdziałem pozycji listy (rozdział niezerowy) =====
Gdy nie jest spełniony warunek {{LinkZobaczTeż|rozdział}}, to wtedy to samo robimy, co tam, tylko bez znaków początku pozycji listy, który usunęliśmy z linii, rozdzielając na dwa łańcuchy znaków, tzn. rozdział i numerację.
==== Uzyskany istniejący rozdział ====
Jeżeli uzyskamy rozdział istnieje, to zmienna {{Code|ze_specialnymi_obiektami}} {{Patrz|ze_specialnymi_obiektami}} przyjmuje wartość {{Code|true}}, a zmienna {{Code|tekst}} jest równa uzyskanemu rozdziałowi bez numeracji, w przeciwnym wypadku jest równy linii {{Code|linia}} podanemu do funkcji.
==== Iterator po zawartości tekstu linii prawdopodobnego rozdziału ====
Uruchamiamy iterator: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, któr zwraca fukcję iteratora po zmiennej {{Code|tekst}} z pierwszą funkcją, która powoduje, że ona jak zwróci wartość {{Code|nil}}, to natychmiast się zakańcza, lub to robi po zakończeniu zasobów danych.
===== Możliwe operacje robione przez funkcję iteratora =====
Funkcja dopuszcza rozdziały z pozycją listy, poczatek linii ma znaki listy tzn. {{Code|<nowiki>[%*#;:]</nowiki>}}, wtedy mamy doczynienia z mozliwy rozdziałem ujemnym, ale to nie musi byc rzeczywiście rozdziałem, linia nie musi być częścią listy, wtedy mamy rozdział z możliwą numeracją, ale z drugiej strony w tych dwóch poprzednich wypadkach, nawet numeracji nie musi być, aby był przez tą funkcją zwracaną, uznanym, że to może być rozdział, albo normalną linią.
===== Obiekt szablon, czyli typu SZABLON =====
W tej funkcji sprawdzamy też obiekt: {{Code|SZABLON}}, przy pomocy funkcji: {{Code|{{sr|#p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON|p=Szablonowe}}}}, dla szablonów centrowania tabelą {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, wtedy ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{Code|czy_centrowanie}} {{Patrz|czy_centrowanie}}, na wartości {{Code|true}}. Potem uruchamiamy funkcję dla niej: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, co potem ta funkcja zwraca wartość {{Code|true}}. A dla szablonów będących linkami sprawdzamy za pomocą kluczy w tabelach: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}} i {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}, lub funkcją {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=SronicowyParser/Potrzebne}}}}, a jeżeli któreś z nich zwróci wartość {{Code|true}}, wtedy przy istnieniu zmiennej: {{Code|rozdział}}, zmienne: {{Code|poczatek}}, {{Code|rozdzial}} i {{Code|numeracja}}, przyjmują {{ZobaczTeż|nilowanie-rozdział}} wartość {{Code|nil}}, wtedy ta funkcja w iteratorze zwraca wartość {{Code|true}}. A wiec wtedy na podstawie tej wartości prawdziwej, funkcja iteratorze zwraca wartość domyślnie nilową, a więc wtedy przy uruchomieniu tego iteratora pętla się zatrzymuje.
===== Obiekty znacznikowe '''HTML''', czyli typu ZNACZNIK =====
Gdy obiekt jest równy: {{Code|ZNACZNIK}}, wtedy używamy funkcji: {{Code|{{sr|#p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika|p=StronicowyParser/Potrzebne}}}}, do zwracania nazwy, zawartości i atrybutów. Dla zawartości nienilowej, sprawdzane, czy znacznikiem jest: {{Tag|center}}, czy jednych ze znaczników wynikających z tabeli: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W tym pierwwszym ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{LinkPatrz|czy_centrowanie}}}, na wartość {{Code|true}}, i zwracamy do funkcji w iteratorze wartość {{Code|nil}}, a w tym drugim wypadku zmienna: {{LinkPatrz|ze_specialnymi_obiektami}}, przyjmuje wartość {{Code|true}}, a: {{Code|czy_znaczniki_hn}} {{Patrz|czy_znaczniki_hn}}, przyjmuje też to samo, i to samo jest zwracane, co w pierwszym. A w obu tych przypadkach uruchamiana jest funkcja: {{LinkŚródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}.
===== Linki wewnętrzne i zewnętrzne =====
Gdy mamy obiekt: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy zmiennej {{LinkPatrz|ze_specialnymi_obiektami}} przydzielana jest wartość {{Code|true}}, i przy istnieniu zmiennej {{Code|rozdział}}, inne zmienne takie jak w: {{LinkZobaczTeż|nilowanie-rozdział}}, są tak inicjowane jak tam.
==== Wartości zwracane przez funkcję w przypadku wykrycia rozdziału ====
Funkcja, gdy nie wykryła rozdziału, to zwraca wartość {{Code|nil}}, w przypadku jego rozpoznania, mamy coś w rozdziaju {{Patrz|procedura zwracania ogólnie wartości}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja,czy_centrowany_rozdzial;
</syntaxhighlight>
Parametry zwracane przez funkcję zwracaną:
* {{Code|linia}} - rozwarzana linia zwracana przez funkcję,
* {{Code|rozdzial}} - wyodrębiony rozdział, bez początku listy i numeracji,
* {{Code|(#poczatek*(-1))}} - ogólnie dla rozdziałów ujemnych lub zerowych, lub ogólniej: {{Code|numer_rozdziału_wartosc_ujemna_lub_dodatnia}} - numer rozdziału dodatniego, ujemnego, czy zerowego, jeżeli w ogóle ona jest rozdziałem, generowanym przez daną linię,
* {{Code|poczatek}} - znaki początka listy, lub {{Code|nil}},
* {{Code|numeracja}} - numeracja rozdziału, znajdująca się na samym jej poczatku, w przypadku pozycji listy, tuz za tymi znakami,
* {{Code|czy_centrowany_rozdzial}} - zwracane wartości {{Code|true/nil}}, wartość prawdziwą, gdy wykryto rozdział centrowany szablonowo, czy znaczniowo, przeciwnym wypadku jest zwracana wartość {{Code|nil}}.
Funkcja na wiele sposobów może wskazywać, czy rozdział niedodatni jest rozdziałem, lub zwracać wartość {{Code|nil}}, gdy jest tylko zwykłą linią, a nie rozdziałem w żadnym wypadku. W w przypadku rozdziałów dodatnich równaniowych, one są zawsze rozdziałami, ale to nie jest kwestią tej funkcji, ale za to jest dla rozdziałów centrowanych znacznikowych lub szablonowych, one nie zawsze są rozdziałami, czasami są zwykłym tekstem, bo nie należy do spisu, albo ma dziwną zawartość. A w przypadku rozdziałów nagłówkowych generowanych przez znaczniki typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jeżeli zawierają zawartość niepustą, to są rozdziałami dodatnimi, wykrywane przez tą funkcję, jako nierównaniowe.
===== Brak obiektów specjalnych linii, które sugerują, że to nie jest jednak rozdział =====
Jeżeli ustawiony nie został parametr przez wcześniejsze wykonywanie iteracji parametr {{Code|ze_specialnymi_obiektami}} na wartość {{Code|true}}, gdy przed iteracją parametr {{Code|rozdział}} istniał, jeśli nie, wtedy wchodzimy do pierwszego rozkłazienia funkcji iteratora dla danej rozważanej linii.
Funkcja sprawdza, czy to jest rozdział zerowy przy użyciu funkcji {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}} w ten sposób otrzymamy zmienną rozdziału, jak to na pewno jest rozdziałem możliwym zerowym bez dalszych sprawdzeń. Funkcja następnie też rewiduje, czy ona posiada nieprzekroczoną liczbę z maksimum znaków, określonej przez zmienną {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}.
Funkcja, jeżeli weszła w ten krok instrukcji warunkowej, w takich przypadkach może zwrócić informację w zależności od jej definicji, że to jest jednak taki rozdział w odpowiedni sposób, w przeciwnym wypadku zwraca informację w postaci wartości nilowej, że jednak nim nie jest, czyli jest to zwykła linia tekstowa, a nie rozdział zerowy, jak przypuszczaliśmy.
W przypadku pozytywnego rozeznania jest sprawdzene, czy rozdział przed cudzysłowem końcy się na znaki iterpunkcyjne, w języku polskim, a jeżeli nie, to funkcja zwraca wartość {{Patrz|bez obiektów zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,0,nil,numeracja;
</syntaxhighlight>
Sprawdzane jest, czy wartości zmiennych {{Code|poczatek}} i {{Code|numeracja}}, czy są nepuste. A gdy nie ma początku, lub jest, ale jest on pusty, oraz jednocześnie, nie ma numeracji, lub numeracja jest zero, wtedy funkcja iteratora zwraca {{Code|nil}}. Przeciwnie, jeśli przed cudzysłowem nie ma znakow iterpunkcyjnych, funkcja zwraca podobny wynik do: {{LinkPatrz|bez obiektów zwracane}}.
W pozostałych wypadkach funkcja zwraca wartość {{Code|nil}}.
===== Rozdziały centrowane =====
Gdy zmienna {{LinkPatrz|czy_centrowanie}}, uzyskaną z iteracji, a także {{LinkPatrz|tak_ce_spis_tresci}}, wstawianej jako drugi parametr iteratora, czy uwzględniać rozdziały centrowane, jeśli przyjmuje wartość nieprawdziwą, to wtedy funkcja iteratora zwraca zawsze {{Code|nil}}, w tym przypadku, przeciwnie, a jeżeli rozdział i numeracja jednocześnie nie istnieją, to funkcja ogólnie zwraca {{Code|nil}}.
Przy istnieniu rozdziału centrowanego w linii, funkcja zwróci taki rozdział, jeżeli zmienna rozdziału i numeracji istnieją, ale któreś z nich nie może może być puste. Poziom rozdziału jest wtedy {{Code|2}}. A zmienna, czy to jest rozdział centrowany, przyjmuje wartość {{Code|true}}.
Wartości zwracane przez funkcję w przypadku rozdziałów centrowanych {{Patrz|centrowane_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,2,nil,numeracja,true;
</syntaxhighlight>
===== Rozdział nagłówka ze znacznikami {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}=====
Jest podobny przypadek rozpatrywania, jak przy rozdziałach centrowania, poziom rozdziału jest okreslany przez funkcję: {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, a to nie jest rozdział centrowany, tylko nagłówkowy. W tym przypadku zmienna {{LinkPatrz|czy_znaczniki_hn}} przyjmuje wartość odpowiadającej prawdziwej.
Wynik w tym wypadku est zwracany {{Patrz|znaczniki_hn_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
</syntaxhighlight>
===== Pozostałe rozdziały (ujemne), które zostały podseperowane, że jednak mogą być rozdziałami, a nie zwykłym tekstem - rozdziały niedwukropkowe (listy niezaczynające się od: {{Code|:}})=====
Wtedy funkcja sprawdza również, czy taki rozdział nie ma przekroczonego maksimum znaków, tzn. {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}. Ta część dokonuje też dalszych sprawdzeń, co na podstawie tego taki rozdział zaliczać do rozdziału ujemnego (wtedy jest zwracany szereg wartości), czy do zwykłego tekstu (wtedy jest zwracana tylko wartość {{Code|nil}}).
Sprawdzane jest {{ZobaczTeż|rozdział niedwukropkowy zwracane}}, czy jest to rozdział dwukropkowy, przy pomocy funkcji: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|b=tak}}}}, jeżeli nie jest, to jest dalej sprawdzane, czy rozdział ma początek równy znakom listy, lub przed cudzysłowem (w ramach cudzysłowu) ma znaki interpunkcyjne, a jeżeli nie ma, to zwracany jest wynik ogólny {{Patrz|rozdział niedwukropkowy zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
</syntaxhighlight>
{{tab}}W innym wypadku, jeżeli poczatek linii, lub nawet numeracja, jeśli któreś z nich nie istnieją lub są puste, wtedy funkcja zwraca {{Code|nil}}, przeciwnie jest sprawdzane, co w punkcje {{LinkZobaczTeż|rozdział niedwukropkowy zwracane}} i zwracany jest wynik jak: {{LinkPatrz|rozdział niedwukropkowy zwracane}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
awzx2xza5dn3p6s1qn7dim8co52lq5p
551358
551357
2026-08-11T13:21:07Z
Persino
2851
/* Wartości zwracane przez funkcję w przypadku wykrycia rozdziału */
551358
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} ==
Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end;
</syntaxhighlight>
Funkcja nie przyjmuje żadnego parametru.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony();
</syntaxhighlight>
Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku.
== {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
...
return function(linia,tak_ce_spis_tresci)
... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane.
return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
Parametry funkcji zwracanej:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział,
* {{Code|tak_ce_spis_tresci}} {{Patrz|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej.
Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość:
* {{Code|linia_temp}} {{Patrz|linia_temp}} - rozważana linia,
* {{Code|nazwa_rozdzialu}} {{Patrz|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii,
* {{Code|poziom_rozdziału}} {{Patrz|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} {{Patrz|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}},
* {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}},
* {{Code|numeracja_rozdzialu}} {{Patrz|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi,
* {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} - czy rozdział napisany jako szablonowo lub znacznikowo, jeśli jest centrowany, to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tablica_analizy_obiektow_strony_dany_modul={};
local linia="<h6>Nagłówek</h6>";
linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
local tab_nazwa_spisow_przekierowaniowych={};
local nazwa_przestrzeni="";
local nazwa_przestrzeni_ksiazki="";
local nazwa_ksiazki="Książki";
local nazwa_spisu_tresci="";
local pelna_nazwa_spisu_tresci_szablonowa="";
local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
end;
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Funkcja zwraca wyniki:
<syntaxhighlight lang="lua">
local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil;
</syntaxhighlight>
=== Wartości początkowe przyjmowane przez funkcję ===
Wartością początkową przyjmowaną jedyną jest zmienna {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=70;
</syntaxhighlight>
Ona mówi, jaką szerokość może mieć maksymalną rozdział zerowy, czy nawet ujemny, aby został uznany za prawdziwy rozdział.
Reszta zmiennych przyjmuje wartości poczatkowe, jako nilowe, jak to jest przy deklaracji zmiennych w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== Tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Przedstawione tutaj tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a opisane w: {{Code|{{sr|StronicowyParser/obiekty}}}}.
==== {{Śródtytuł|Szablony centrowania}}Szablony centrowania ====
Funkcja wykorzystuje tabelę: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, o:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Z którego się dowiadujemy, z jakimi szablonami centrowania mamy do czynienia w tej funkcji, funkcja je wykrywa i ustawia, że dla tej linii z nim ją wykrył, niezależnie, jakie linki wewnątrz posiada.
==== Szablony linków wewnętrznych artykularne tworzące spis rzeczy szablonowe ====
Jeżeli w linii wykryto te szablony zamiast szablonów centrowania, to wiadomo, że ona nie stanowi rozdziału w liniach, które mają być rozdziałami ujemnymi lub zerowymi. Do tego celu służą linki zdfiniowane w tablicach, które są napisane w podrozdziałach poniżej.
===== Pierwszego typu - linki inteligentne =====
Następną tablicą: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
===== Drugiego typu - szablony tworzenia spisu rzeczy =====
Tą tablicą jest: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
==== Znaczniki wprowadzenia tekstu ====
Ta tablica: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, zawiera definicję znaczników różnych nagłówków, zdefiniowaną tam.
Są to znaczniki {{Strong|HTML}} o możliwych pozimach od: {{Code|1}} do {{Code|6}}, jakie ta funkcja ma wykrywać, żeby uznać tą linię za rozdział, niezależnie, jakie linki wewnątrz znacznika są zdefiniowane.
Poziomy większe od {{Code|6}} są jedynie możliwe za pomocą szablonu {{s|HNumer}}.
==== Rozdziały dodatnie centrowane znacznikowe i szablonowe, które uznać za nie rozdziały ====
Linie, które zostały uznane za rozdziały, można uznać, że takie nie są, jeżeli zawierają one szablony zdefiniowane w tablicy: {{Code|{{sr|#p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}:
<syntaxhighlight lang="lua">
p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={
["Rozdział"]=true,
["Podrozdział"]=true,
["MapaObrazu"]=true,
};
</syntaxhighlight>
Rozdziały te, które zostały uznane za nierozdziały, powoduje to, że iterator tej funkcji wtedy dla ściśle określonej linii zwróci wartość {{Code|nil}}, a nie konkretne wartości, które by świadczyły o rozdziale centrowanym. Szablony centrowania szablonowego są zdefiniowane w: {{LinkŚródtytuł|Szablony centrowania}}, a znaczniki to są po prostu w postaci definicji: {{Tag|center}}.
==== Funkcje lokalne ====
===== {{Śródtytuł|LiniaCydzyslow}}{{Code|LiniaCydzyslow}} =====
Fukcja wyszukuje, czy rozdział jest pomiędzy cudzysłowami, a jeżeli nie, to zwraca {{Code|false}}, w przeciwnym wypadku sprawdzamy dalej, jeżeli rozdział pasuje do tego, że on składa się z samych liter dużych z możliwymi odstępami, oraz w rozdziale można wyróżnić pojedyńcze litery duże, lub ta duża pojedyncza znajduje sie na początku rozdziału, bądź na jej końcu, wtedy funkcja zwraca wartość odpowiadającej wartości fałszu, a jęzeli nie, to prawdy.
===== {{Śródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}{{Code|WykluczenieNieodpowiednichNormSzablonowych}} =====
Funkcja zwraca {{Code|true}}, gdy dało się wykluczyć nieodpowiednie norm szablonowe, w przeciwnym wypadku {{Code|nil}}, to ostatnie właśnie to jest zwracane, gdy obiekt szablonowy jest z kodem o obiektami: {{Code|GALERIA}}, {{Code|ŹRÓDŁO}}, {{Code|PRE}}, {{Code|INNEPRE}}, {{Code|WIKITABELA}} lub {{Code|MAPAOBRAZU}}, albo on jest szablonem normalnym o obiekcie: {{Code|SZABLON}}, którego nazwy pasują do nazw kluczy tabeli: {{LinkPatrz|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}.
===== {{Śródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}{{Code|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}} =====
Funkcja słuzy do rewidowania zawartości szablonu, ukrytą pod pewnym parametrem, czy znacznika, oczywiście centrowania, czy ona jest: {{Code|<nowiki>^%s*%d+%s*/%s*%d+%</nowiki>}} (czyli rozdziały składające się z dwóch liczb oddzielonych prawym ukośnikiem), a jeśli nie, to czy: {{Code|<nowiki>!%s*'*%s*$</nowiki>}} (na końcu przed ewentualnie cudzysłowem znajduje się wykrzyknik), w takich przypadkach zawsze zwracanajest wartość {{Code|nil}}, jeżeli się funkcja zakańcza, jeżeli sprawdzenie przeszło pomyślnie.
Jeśli ona się nie zakończyła przedwcześnie, wtedy liczy zmienne, tutaj nielokalne, rozdział {{Code|rozdzial}} i numerację {{Code|numeracja}} z: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}} {{Patrz|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ze zmiennej testowej, ktorą jest pojedyncza linia bez znaków listy, a jeżeli tak z policzonego ze zmiennej rozdziału funkcja: {{LinkŚródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}, nie wyklucza niczgo, tzn. zaprzeczenie zwrócone przez tą funkcję przyjmuje wartość prawdziwą - czyli w tekście sprawdzamy występują te specjalne znaki, wtedy zmienne: {{Code|numeracja}} i {{Code|rozdział}, są przyrównywane do wartości {{Code|nil}}, przeciwnym wypadku funkcja nic nie robi.
===== {{Śródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}{{Code|NiestardardoweSzablonoweWprowdzeniaTekstu}} =====
Funkcja sprawdza zawartość szablonu jakiegoś centrowania. Funkcja rewiduje, czy nazwa tego szablonu, czy jest rzeczywiście szablonem centrowania według tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, a jeżeli tak, z tej tabeli jest liczony klucz zmiennej jego zawartości tabeli parametrów szablonow, pod którym jest ukryta jego zawartość liczona z tabeli parametrów szablonu, co ta zawartartość jest sprawdzana później przez funkcję: {{LinkŚródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}, która możliwie niluje odpowiednio dwie zmienne, jeżeli zajdzie taka potrzeba.
===== {{Śródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}{{Code|NiestardardoweZnacznikoweWprowdzeniaTekstu}} =====
To samo, co dla funkcji: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, tylko że, tym razem nie dla szablonów centrowania, tylko dla znaczników centrowania {{Tag|center}}, ale też dla znaczników wprowadzenia tekstu opisywanych przez tabelę: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Początek (znaki specjalne początku pozycji listy) i rozdział z możliwą numeracją ====
Funkcja wyodrębnia początek i rozdział z możliwą numeracją od siebie na linii z pozycją listy. Jeżeli tego się nie dało wyodrębnić, to mamy wtedy prawdopodobnie rozdział zerowy, ale nie musi być, może być to zwykła linia tekstowa pewnego napisu wprowadzenia tekstu. W takim przypadku funkcja liczy rozdział z numeracją lub wyodrębnia to z tego otoczonego cudzysłowami.
==== Badanie jaki to jest rozdział ====
===== Rozdział zerowy =====
====== Sukces wyodrębnianiu rozdziału ======
Jeżeli to dało się wyodrębnić {{ZobaczTeż|rozdział}}, to przyjmujemy, że zmienna {{Code|poczatek}} jest równa ciągowi znakowemu pustemu, a z rozdziału numeracji usuwamy znaki specjalne dzięki {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, dalej są usuwane odstępy z początku i końca tego czegoś i na podstawie tego jest wyznaczany rozdział i numeracja z tak uzyskanemu szeregu.
====== Brak numeracji rozdziału ======
{{HNumer|1=
======= Wykryta linia cudzysłowu =======
}}
Jest sprawdzane, czy to jest linia z cudzysłowem na podstawie {{LinkŚródtytuł|LiniaCydzyslow}}, a jeżeli funkcja zrzuci wartość odpowiadającą prawdziwej wartości, wtedy rozdział jest równy linii, a poczatek i numeracja są równe ciągowi pustemu.
{{HNumer|1=
======= Adresu URL linii =======
}}
W innym wypadku, gdy poprzedni warunek nie jest spełniony, sprawdzamy, czy któreś z poszczególnych ciągów z czarnymi znakami są adresami z {{Strong|URL}}, a jeżeli tak, to wtedy są tak samo inicjowane zmienne.
===== Rozdział będący rozdziałem pozycji listy (rozdział niezerowy) =====
Gdy nie jest spełniony warunek {{LinkZobaczTeż|rozdział}}, to wtedy to samo robimy, co tam, tylko bez znaków początku pozycji listy, który usunęliśmy z linii, rozdzielając na dwa łańcuchy znaków, tzn. rozdział i numerację.
==== Uzyskany istniejący rozdział ====
Jeżeli uzyskamy rozdział istnieje, to zmienna {{Code|ze_specialnymi_obiektami}} {{Patrz|ze_specialnymi_obiektami}} przyjmuje wartość {{Code|true}}, a zmienna {{Code|tekst}} jest równa uzyskanemu rozdziałowi bez numeracji, w przeciwnym wypadku jest równy linii {{Code|linia}} podanemu do funkcji.
==== Iterator po zawartości tekstu linii prawdopodobnego rozdziału ====
Uruchamiamy iterator: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, któr zwraca fukcję iteratora po zmiennej {{Code|tekst}} z pierwszą funkcją, która powoduje, że ona jak zwróci wartość {{Code|nil}}, to natychmiast się zakańcza, lub to robi po zakończeniu zasobów danych.
===== Możliwe operacje robione przez funkcję iteratora =====
Funkcja dopuszcza rozdziały z pozycją listy, poczatek linii ma znaki listy tzn. {{Code|<nowiki>[%*#;:]</nowiki>}}, wtedy mamy doczynienia z mozliwy rozdziałem ujemnym, ale to nie musi byc rzeczywiście rozdziałem, linia nie musi być częścią listy, wtedy mamy rozdział z możliwą numeracją, ale z drugiej strony w tych dwóch poprzednich wypadkach, nawet numeracji nie musi być, aby był przez tą funkcją zwracaną, uznanym, że to może być rozdział, albo normalną linią.
===== Obiekt szablon, czyli typu SZABLON =====
W tej funkcji sprawdzamy też obiekt: {{Code|SZABLON}}, przy pomocy funkcji: {{Code|{{sr|#p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON|p=Szablonowe}}}}, dla szablonów centrowania tabelą {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, wtedy ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{Code|czy_centrowanie}} {{Patrz|czy_centrowanie}}, na wartości {{Code|true}}. Potem uruchamiamy funkcję dla niej: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, co potem ta funkcja zwraca wartość {{Code|true}}. A dla szablonów będących linkami sprawdzamy za pomocą kluczy w tabelach: {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}} i {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}, lub funkcją {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=SronicowyParser/Potrzebne}}}}, a jeżeli któreś z nich zwróci wartość {{Code|true}}, wtedy przy istnieniu zmiennej: {{Code|rozdział}}, zmienne: {{Code|poczatek}}, {{Code|rozdzial}} i {{Code|numeracja}}, przyjmują {{ZobaczTeż|nilowanie-rozdział}} wartość {{Code|nil}}, wtedy ta funkcja w iteratorze zwraca wartość {{Code|true}}. A wiec wtedy na podstawie tej wartości prawdziwej, funkcja iteratorze zwraca wartość domyślnie nilową, a więc wtedy przy uruchomieniu tego iteratora pętla się zatrzymuje.
===== Obiekty znacznikowe '''HTML''', czyli typu ZNACZNIK =====
Gdy obiekt jest równy: {{Code|ZNACZNIK}}, wtedy używamy funkcji: {{Code|{{sr|#p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika|p=StronicowyParser/Potrzebne}}}}, do zwracania nazwy, zawartości i atrybutów. Dla zawartości nienilowej, sprawdzane, czy znacznikiem jest: {{Tag|center}}, czy jednych ze znaczników wynikających z tabeli: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W tym pierwwszym ustawiamy zmienne: {{LinkPatrz|ze_specialnymi_obiektami}} i {{LinkPatrz|czy_centrowanie}}}, na wartość {{Code|true}}, i zwracamy do funkcji w iteratorze wartość {{Code|nil}}, a w tym drugim wypadku zmienna: {{LinkPatrz|ze_specialnymi_obiektami}}, przyjmuje wartość {{Code|true}}, a: {{Code|czy_znaczniki_hn}} {{Patrz|czy_znaczniki_hn}}, przyjmuje też to samo, i to samo jest zwracane, co w pierwszym. A w obu tych przypadkach uruchamiana jest funkcja: {{LinkŚródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}.
===== Linki wewnętrzne i zewnętrzne =====
Gdy mamy obiekt: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy zmiennej {{LinkPatrz|ze_specialnymi_obiektami}} przydzielana jest wartość {{Code|true}}, i przy istnieniu zmiennej {{Code|rozdział}}, inne zmienne takie jak w: {{LinkZobaczTeż|nilowanie-rozdział}}, są tak inicjowane jak tam.
==== Wartości zwracane przez funkcję w przypadku wykrycia rozdziału ====
Funkcja, gdy nie wykryła rozdziału, to zwraca wartość {{Code|nil}}, w przypadku jego rozpoznania, mamy coś w rozdziaju {{Patrz|procedura zwracania ogólnie wartości}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja,czy_centrowany_rozdzial;
</syntaxhighlight>
Parametry zwracane przez funkcję zwracaną:
* {{Code|linia}} - rozwarzana linia zwracana przez funkcję,
* {{Code|rozdzial}} - wyodrębiony rozdział, bez początku listy i numeracji,
* {{Code|(#poczatek*(-1))}} - ogólnie dla rozdziałów ujemnych lub zerowych, lub ogólniej: {{Code|numer_rozdziału_wartosc_ujemna_lub_dodatnia}} - numer rozdziału dodatniego, ujemnego, czy zerowego, jeżeli w ogóle ona jest rozdziałem, generowanym przez daną linię,
* {{Code|poczatek}} - znaki początka listy, lub {{Code|nil}},
* {{Code|numeracja}} - numeracja rozdziału, znajdująca się na samym jej poczatku, w przypadku pozycji listy, tuz za tymi znakami,
* {{Code|czy_centrowany_rozdzial}} - zwracane wartości {{Code|true/nil}}, wartość prawdziwą, gdy wykryto rozdział centrowany szablonowo, czy znaczniowo, przeciwnym wypadku jest zwracana wartość {{Code|nil}}.
Funkcja na wiele sposobów może wskazywać, czy rozdział niedodatni jest rozdziałem, lub zwracać wartość {{Code|nil}}, gdy jest tylko zwykłą linią, a nie rozdziałem w żadnym wypadku. W przypadku rozdziałów dodatnich równaniowych, one są zawsze rozdziałami, ale to nie jest kwestią tej funkcji, ale za to jest dla rozdziałów centrowanych znacznikowych lub szablonowych, one nie zawsze są rozdziałami, czasami są zwykłym tekstem, bo nie należy do spisu, albo ma dziwną zawartość. A w przypadku rozdziałów nagłówkowych generowanych przez znaczniki typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jeżeli zawierają zawartość niepustą, to są rozdziałami dodatnimi ({{Code|<nowiki>numer_rozdziału_wartosc_ujemna_lub_dodatnia > 0</nowiki>}}), wykrywane przez tą funkcję, jako nierównaniowe.
===== Brak obiektów specjalnych linii, które sugerują, że to nie jest jednak rozdział =====
Jeżeli ustawiony nie został parametr przez wcześniejsze wykonywanie iteracji parametr {{Code|ze_specialnymi_obiektami}} na wartość {{Code|true}}, gdy przed iteracją parametr {{Code|rozdział}} istniał, jeśli nie, wtedy wchodzimy do pierwszego rozkłazienia funkcji iteratora dla danej rozważanej linii.
Funkcja sprawdza, czy to jest rozdział zerowy przy użyciu funkcji {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}} w ten sposób otrzymamy zmienną rozdziału, jak to na pewno jest rozdziałem możliwym zerowym bez dalszych sprawdzeń. Funkcja następnie też rewiduje, czy ona posiada nieprzekroczoną liczbę z maksimum znaków, określonej przez zmienną {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}.
Funkcja, jeżeli weszła w ten krok instrukcji warunkowej, w takich przypadkach może zwrócić informację w zależności od jej definicji, że to jest jednak taki rozdział w odpowiedni sposób, w przeciwnym wypadku zwraca informację w postaci wartości nilowej, że jednak nim nie jest, czyli jest to zwykła linia tekstowa, a nie rozdział zerowy, jak przypuszczaliśmy.
W przypadku pozytywnego rozeznania jest sprawdzene, czy rozdział przed cudzysłowem końcy się na znaki iterpunkcyjne, w języku polskim, a jeżeli nie, to funkcja zwraca wartość {{Patrz|bez obiektów zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,0,nil,numeracja;
</syntaxhighlight>
Sprawdzane jest, czy wartości zmiennych {{Code|poczatek}} i {{Code|numeracja}}, czy są nepuste. A gdy nie ma początku, lub jest, ale jest on pusty, oraz jednocześnie, nie ma numeracji, lub numeracja jest zero, wtedy funkcja iteratora zwraca {{Code|nil}}. Przeciwnie, jeśli przed cudzysłowem nie ma znakow iterpunkcyjnych, funkcja zwraca podobny wynik do: {{LinkPatrz|bez obiektów zwracane}}.
W pozostałych wypadkach funkcja zwraca wartość {{Code|nil}}.
===== Rozdziały centrowane =====
Gdy zmienna {{LinkPatrz|czy_centrowanie}}, uzyskaną z iteracji, a także {{LinkPatrz|tak_ce_spis_tresci}}, wstawianej jako drugi parametr iteratora, czy uwzględniać rozdziały centrowane, jeśli przyjmuje wartość nieprawdziwą, to wtedy funkcja iteratora zwraca zawsze {{Code|nil}}, w tym przypadku, przeciwnie, a jeżeli rozdział i numeracja jednocześnie nie istnieją, to funkcja ogólnie zwraca {{Code|nil}}.
Przy istnieniu rozdziału centrowanego w linii, funkcja zwróci taki rozdział, jeżeli zmienna rozdziału i numeracji istnieją, ale któreś z nich nie może może być puste. Poziom rozdziału jest wtedy {{Code|2}}. A zmienna, czy to jest rozdział centrowany, przyjmuje wartość {{Code|true}}.
Wartości zwracane przez funkcję w przypadku rozdziałów centrowanych {{Patrz|centrowane_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,2,nil,numeracja,true;
</syntaxhighlight>
===== Rozdział nagłówka ze znacznikami {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}=====
Jest podobny przypadek rozpatrywania, jak przy rozdziałach centrowania, poziom rozdziału jest okreslany przez funkcję: {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, a to nie jest rozdział centrowany, tylko nagłówkowy. W tym przypadku zmienna {{LinkPatrz|czy_znaczniki_hn}} przyjmuje wartość odpowiadającej prawdziwej.
Wynik w tym wypadku est zwracany {{Patrz|znaczniki_hn_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
</syntaxhighlight>
===== Pozostałe rozdziały (ujemne), które zostały podseperowane, że jednak mogą być rozdziałami, a nie zwykłym tekstem - rozdziały niedwukropkowe (listy niezaczynające się od: {{Code|:}})=====
Wtedy funkcja sprawdza również, czy taki rozdział nie ma przekroczonego maksimum znaków, tzn. {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}. Ta część dokonuje też dalszych sprawdzeń, co na podstawie tego taki rozdział zaliczać do rozdziału ujemnego (wtedy jest zwracany szereg wartości), czy do zwykłego tekstu (wtedy jest zwracana tylko wartość {{Code|nil}}).
Sprawdzane jest {{ZobaczTeż|rozdział niedwukropkowy zwracane}}, czy jest to rozdział dwukropkowy, przy pomocy funkcji: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|b=tak}}}}, jeżeli nie jest, to jest dalej sprawdzane, czy rozdział ma początek równy znakom listy, lub przed cudzysłowem (w ramach cudzysłowu) ma znaki interpunkcyjne, a jeżeli nie ma, to zwracany jest wynik ogólny {{Patrz|rozdział niedwukropkowy zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
</syntaxhighlight>
{{tab}}W innym wypadku, jeżeli poczatek linii, lub nawet numeracja, jeśli któreś z nich nie istnieją lub są puste, wtedy funkcja zwraca {{Code|nil}}, przeciwnie jest sprawdzane, co w punkcje {{LinkZobaczTeż|rozdział niedwukropkowy zwracane}} i zwracany jest wynik jak: {{LinkPatrz|rozdział niedwukropkowy zwracane}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1kuqha48dqif14ksxcefx0fbxn0ruw7
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V
4
63907
551543
551329
2026-08-12T03:45:16Z
Persino
2851
551543
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adreesu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy ponocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z stworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia wartość tabeli o kluczu równym nazwie tego szablonu.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by zawartość znacznika {{Tag|div}} zastąpić jego zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest nowa linia, a a przeciwniew aniej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr sa uruchamiane pewne funkcje, anulujące własciwości tychrozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jego wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są nowe linie, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innejjego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znaczniowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jego artykuł, ale nie okładka, wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy rozdział jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ad9gcls0llch7ah1810udbhclv23ppf
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom I
4
63908
551371
2026-08-11T16:01:45Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Przedstawione sa tu funkcje do zbierania informacji o uchwycie. == {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} == Funkcja zbiera…”
551371
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.insert|b=tak}}}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cj3111xwajvb3kg1b4kzexu03ezf4to
551372
551371
2026-08-11T16:04:44Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom I]] do [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II]], bez pozostawienia przekierowania pod starym tytułem
551371
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.insert|b=tak}}}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cj3111xwajvb3kg1b4kzexu03ezf4to
551374
551372
2026-08-11T16:07:09Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II]] do [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II-tymczasowy]], bez pozostawienia przekierowania pod starym tytułem
551371
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.insert|b=tak}}}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cj3111xwajvb3kg1b4kzexu03ezf4to
551376
551374
2026-08-11T16:07:55Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II-tymczasowy]] do [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom I]], bez pozostawienia przekierowania pod starym tytułem
551371
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.insert|b=tak}}}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cj3111xwajvb3kg1b4kzexu03ezf4to
551377
551376
2026-08-11T16:09:02Z
Persino
2851
551377
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom IIStronicowyParser/ZbieranieDanychStron/Tom II}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.insert|b=tak}}}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gx1060gq3tfztf1jdvgtsha2wn0yzog
551378
551377
2026-08-11T16:10:00Z
Persino
2851
551378
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.insert|b=tak}}}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pcp5kgu9z86225ramkzxll3a6ptoj3r
551544
551378
2026-08-12T03:46:23Z
Persino
2851
551544
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione sa tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru {{LinkPatrz|nazwa obiektu}} i trzecim {{LinkPatrz|kod}}, oraz o drugim {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy {{LinkPatrz|uchwyty_bez_numeracji}} o danym kodzie {{LinkPatrz|kod}}, dla nazwy obiektu {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
Funkcja rozwija {{LinkPatrz|kod_uchwytu}} funkcją {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}} z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}} o nazwie {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu {{Code|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela {{LinkPatrz|tab_numer}} odpowiada nienilowej tablicy, wtedy element {{LinkPatrz|lista_dwuelementowa}} jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{LzLua|table.insert}}, dzięki określonej tabeli {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu {{LinkPatrz|nazwa_obiektu}} w ogólnej tabeli: {{LinkPatrz|tablica_zmiennych}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1vozoglmvdrmeg9e7xphx4fvm0hyfw3
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II
4
63909
551373
2026-08-11T16:06:12Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} == Funkcj…”
551373
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, podobnie ale wcześniej jest liczona nazwa artykułu {{linkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0r7otb8oerjl6vubezi6y926rduhadi
551375
551373
2026-08-11T16:07:31Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom I]] do [[Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II]], bez pozostawienia przekierowania pod starym tytułem
551373
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, podobnie ale wcześniej jest liczona nazwa artykułu {{linkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0r7otb8oerjl6vubezi6y926rduhadi
551379
551375
2026-08-11T16:11:12Z
Persino
2851
551379
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, podobnie ale wcześniej jest liczona nazwa artykułu {{linkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
r6lsh5pubrh0lnko9a8hvdcan9n2ggy
551380
551379
2026-08-11T16:12:09Z
Persino
2851
/* {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} */
551380
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, podobnie ale wcześniej jest liczona nazwa artykułu {{linkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1snvnhgxnoiqw2zr0zn91wl3j6oryx0
551381
551380
2026-08-11T16:12:33Z
Persino
2851
/* {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} */
551381
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, podobnie ale wcześniej jest liczona nazwa artykułu {{linkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
plkzuro8gvmtj2mo8gsq92f9x2fcl4s
551382
551381
2026-08-11T16:12:52Z
Persino
2851
/* {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} */
551382
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, podobnie ale wcześniej jest liczona nazwa artykułu {{linkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g4bauyal5t4zhmk5y2nsh1e0ey92olt
551383
551382
2026-08-11T16:15:30Z
Persino
2851
/* {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} */
551383
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, podobnie ale wcześniej jest liczona nazwa artykułu {{LinkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
impe2omv8bnt6dl0nrh83z2d5ggu42o
551384
551383
2026-08-11T16:17:01Z
Persino
2851
/* {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} */
551384
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem {{Code|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem {{Code|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem {{Code|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}}, ewentualnie: {{Code|nazwa_ksiazki}}, ale zawsze z: {{Code|uchwyt_obiektu}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}}, {{Code|nazwa_artykulu}} i {{Code|nazwa_ksiazki}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
Paraametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{Patrz|nazwa artykułu}} albo {{Code|1}}, gdy bezuchwytowe lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{Patrz|nazwa książki}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}} lub przy użyciu parametru również {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, podobnie ale wcześniej jest liczona nazwa artykułu {{LinkZobaczTeż|nazwa artykułu}}, czyli: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0gnrthosijm0z3e9m044558367wdiyr
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom III
4
63910
551385
2026-08-11T16:19:24Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude>”
551385
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mfyom5dgfqfg8t9cgfj4caq9ml610mw
551386
551385
2026-08-11T16:21:58Z
Persino
2851
551386
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
onym1km85fu4bavoxniaika8asoha67
551387
551386
2026-08-11T16:24:52Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} */
551387
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy|StronicowyParser/ZbieranieDanychStron/Tom I}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
il7113gpemolvgcdk8odrjedfg8rcp5
551388
551387
2026-08-11T16:26:05Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} */
551388
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
es59f02ktgsdycenkj6z9z5fjq3q8m2
551389
551388
2026-08-11T16:28:25Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */
551389
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa jednostki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k6rvvbub31q08fi2jua4pywewxxmst5
551390
551389
2026-08-11T16:29:02Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */
551390
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa jednostki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bake1g762yfplj72i1vt5ta4scvf980
551391
551390
2026-08-11T16:30:36Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */
551391
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom }}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mbuuwskitwsrsmm4qfif8mku2oq06lg
551392
551391
2026-08-11T16:32:09Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} */
551392
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom }}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8x0taneayhnxfdzacjcigmg2o804s8p
551393
551392
2026-08-11T16:32:48Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} */
551393
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom }}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
81b1t3xmn9cg45jrb1afjfy44ytw0yy
551394
551393
2026-08-11T16:33:19Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */
551394
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hvdxs9r0kkn6roo60nf91l5m932q5ab
551425
551394
2026-08-11T17:11:01Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} */
551425
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pdtcfwmfr1z3uhmc3vyeqkwii3aq4mu
551426
551425
2026-08-11T17:11:58Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */
551426
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n4c19stbhv1e2b6rke6likxh9alqcge
551427
551426
2026-08-11T17:12:34Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} */
551427
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, gdy nie jest uruchomiony parametr: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}, która liczy kolejne nazwy charaktertyzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}}, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - jak w: {{LinkPatrz|tab_nazwy}}.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}.
Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony.
Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{LinkPatrz|nazwa przestrzeni nazw}} i {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j55do3o7uayq01eilagmwnnmzfk9tfa
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV
4
63911
551395
2026-08-11T16:35:03Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} == Funkcja sprawdza niepoprawność nazwy stron…”
551395
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} ==
Funkcja sprawdza niepoprawność nazwy strony i na podstawie tego ustawia pewne kody problemów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|__FUNKCJA_SPRAWDZANIE}} {{Patrz|__FUNKCJA_SPRAWDZANIE}} - funkcja uruchamiana, jeśli jest ustawiona, na wypadek poprawności strony.
W przypadku niepoprawności strony, gdy strona modułu jest aktualna (bieżąca), wtedy sprawdzany jest kod problemu, czy jest ustawiony, tzn.: {{Code|nieprawidłowe nazwy korzystanych stron}}, przy pomocy funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli nie ma takiego, to wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. Podobnie jest dla niekorzystanej strony, wtedy jest problem dla kodu: {{Code|nieprawidłowe nazwy stron dołączanych do stron}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ks50c0ohvfzs7lmfzcj2jmebjagygxc
551396
551395
2026-08-11T16:36:30Z
Persino
2851
551396
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} ==
Funkcja sprawdza niepoprawność nazwy strony i na podstawie tego ustawia pewne kody problemów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|__FUNKCJA_SPRAWDZANIE}} {{Patrz|__FUNKCJA_SPRAWDZANIE}} - funkcja uruchamiana, jeśli jest ustawiona, na wypadek poprawności strony.
W przypadku niepoprawności strony, gdy strona modułu jest aktualna (bieżąca), wtedy sprawdzany jest kod problemu, czy jest ustawiony, tzn.: {{Code|nieprawidłowe nazwy korzystanych stron}}, przy pomocy funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli nie ma takiego, to wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. Podobnie jest dla niekorzystanej strony, wtedy jest problem dla kodu: {{Code|nieprawidłowe nazwy stron dołączanych do stron}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ovorermadhs532j5bykv13hhaycfm9h
551397
551396
2026-08-11T16:37:37Z
Persino
2851
/* {{Śródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} */
551397
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} ==
Funkcja sprawdza niepoprawność nazwy strony i na podstawie tego ustawia pewne kody problemów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|__FUNKCJA_SPRAWDZANIE}} {{Patrz|__FUNKCJA_SPRAWDZANIE}} - funkcja uruchamiana, jeśli jest ustawiona, na wypadek poprawności strony.
W przypadku niepoprawności strony, gdy strona modułu jest aktualna (bieżąca), wtedy sprawdzany jest kod problemu, czy jest ustawiony, tzn.: {{Code|nieprawidłowe nazwy korzystanych stron}}, przy pomocy funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli nie ma takiego, to wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. Podobnie jest dla niekorzystanej strony, wtedy jest problem dla kodu: {{Code|nieprawidłowe nazwy stron dołączanych do stron}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nn7x3akf4sobug03ov72qov9uwmx1im
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom V
4
63912
551398
2026-08-11T16:41:49Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wadza uchwyt obiektu, wsazu…”
551398
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pi6nm53hto59gjfjbusa1xyiqqpp4f7
551399
551398
2026-08-11T16:45:28Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} */
551399
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s1q2ld97g0gpz0l025pie99fu9u2o59
551400
551399
2026-08-11T16:46:52Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} */
551400
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hlshplxdoff38zl9ioyj1vq10tni2hn
551401
551400
2026-08-11T16:47:27Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} */
551401
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0nl3wl7w6wmu2dzb338zri7n9h6swbp
551402
551401
2026-08-11T16:49:11Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */
551402
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k0hq2q70k7mm9wut4jnckzdq2cb3mup
551403
551402
2026-08-11T16:50:22Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */
551403
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jygglme62h9bh5qhpi39sy3e7ab28uc
551404
551403
2026-08-11T16:51:04Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */
551404
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ep92yhkkfwwk0ylmfuzpf4o0oxqw7b4
551405
551404
2026-08-11T16:51:47Z
Persino
2851
/* {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} */
551405
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f33ny4feaew57imaceh351b08uqdviq
551406
551405
2026-08-11T16:52:23Z
Persino
2851
/* Dalszy opis funkcji */
551406
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dw97f95bcigrpj9mfui1c9rwbl47hb2
551407
551406
2026-08-11T16:53:25Z
Persino
2851
/* Dalszy opis funkcji */
551407
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h0csduclw1sej8zfggvv8xvm6k3gqvd
551408
551407
2026-08-11T16:55:11Z
Persino
2851
/* {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} */
551408
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h8s61kbd14lg0rsz983zyqo88zkzt2w
551409
551408
2026-08-11T16:56:18Z
Persino
2851
/* Wyznaczanie i przetwarzanie uchwytu */
551409
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hlsgywlodlwx1ykzd2zi0w89flyxf7i
551410
551409
2026-08-11T16:57:22Z
Persino
2851
/* Wyznaczanie nazw linku stronicowego */
551410
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6floo2xurijqo2wsp50k08gokryfw16
551411
551410
2026-08-11T16:57:40Z
Persino
2851
/* Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie */
551411
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
omkqq36mm9l22i7mqq2932jh4k5lcih
551412
551411
2026-08-11T16:58:21Z
Persino
2851
/* Przypadek uchwytu pustego */
551412
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom III}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
d4d8wq60lzzd70c5ga3xbcr7w6iiv4o
551413
551412
2026-08-11T16:59:27Z
Persino
2851
/* Przypadek uchwytu pustego */
551413
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4si5pp829ew3ijh90cmx0ihugfqcna8
551414
551413
2026-08-11T17:00:13Z
Persino
2851
/* Istniejący niepusty uchwyt linku */
551414
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2m6c555fa8y9bljyi52jpwyov8047gd
551415
551414
2026-08-11T17:01:06Z
Persino
2851
/* Dodatkowo istnieje tylko nazwa artykułu */
551415
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4xzu2jf54y0ce945ipe5b85kcbhffcx
551416
551415
2026-08-11T17:01:39Z
Persino
2851
/* Dodatkowo istnieje tylko nazwa książki */
551416
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
87o2wo1g2ofuhh1f0ombt98tgjglz62
551417
551416
2026-08-11T17:02:15Z
Persino
2851
/* Liczenie parametrów nazw wywołań szablonowych linków */
551417
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p29kdu0h6a3bffdu7tfl8wvks8qkdxl
551418
551417
2026-08-11T17:03:18Z
Persino
2851
/* Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów */
551418
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bbev8ads5f4plcbanbvu1qe2b2pxw7t
551419
551418
2026-08-11T17:04:38Z
Persino
2851
/* Dalszy opis funkcji */
551419
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji||StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ik23fj1qoiaeistzxgfna584r6ebm6v
551420
551419
2026-08-11T17:05:09Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} */
551420
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0m3m1fwn751nj7hawhqpromival7725
551421
551420
2026-08-11T17:06:09Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */
551421
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
88w72nqumctox71xjs1hu682hj13s8h
551422
551421
2026-08-11T17:06:50Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */
551422
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0y5ywbf860k0zm589wl0vve558drnad
551423
551422
2026-08-11T17:07:20Z
Persino
2851
/* {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} */
551423
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1utw7m6ls1rdwp8icbns2c2673e6t12
551428
551423
2026-08-11T17:13:59Z
Persino
2851
/* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */
551428
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw tej strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}} pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest spraqdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkiwej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
Dalej jest sprawdzane, czy podany uchwyt {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, na podstawie poszczególnych artykułów tej książki lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika.
==== Nazwa artykułu nie istnieje ====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
==== Dodatkowo istnieje tylko nazwa książki ====
Gdy nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}.
==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ====
Gdy nazwy {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
l05w2026klle2clr7rwmhin9c99oysz
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI
4
63913
551424
2026-08-11T17:09:45Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} == Funkcja służy do z…”
551424
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h6zap8axnc7p4bq18mdbzusojdznmuf
551429
551424
2026-08-11T17:27:21Z
Persino
2851
/* {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} */
551429
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1v4a26gdr23m0sj0gzbglfhd6e1zv5i
551430
551429
2026-08-11T17:30:57Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */
551430
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3sdaaneuolj7xlfj44eg388eaotbnij
551431
551430
2026-08-11T17:31:27Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */
551431
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6q67gemmhsa25m5qps4wsomee2r0klh
551432
551431
2026-08-11T17:33:22Z
Persino
2851
/* {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} */
551432
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nhdb0eaztmv0jskyw34u8h92waonhp5
551433
551432
2026-08-11T17:34:12Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} */
551433
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4u4ovv0e4bqb91icx7yu0kqgaf79j9s
551434
551433
2026-08-11T17:34:47Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} */
551434
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6pxfqjsiz4jq8lb0vneru77fwpca593
551435
551434
2026-08-11T17:35:30Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} */
551435
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ewapm5qbzggo3bgixmzruu8aew6z9fx
551436
551435
2026-08-11T17:36:49Z
Persino
2851
/* Dalszy opis funkcji - etap I */
551436
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
b0kvlhiv1go9wpf05phd8l2mmnlt21g
551437
551436
2026-08-11T17:37:57Z
Persino
2851
/* Druga anonimowa funkcji */
551437
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4y1f5oss3uiiamgxqhwkbt90snxi1ar
551438
551437
2026-08-11T17:38:20Z
Persino
2851
/* Druga anonimowa funkcji */
551438
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
t1hakn5ij0r8fbrnnt3sq418qtffx14
551439
551438
2026-08-11T17:39:23Z
Persino
2851
/* Przypadek nieistnienia spisu głównego książki */
551439
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hl631pzb78qhumkqgl3iiqee2yibdw7
551440
551439
2026-08-11T17:40:09Z
Persino
2851
/* Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu */
551440
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ovi8zioyjjhgudy19wt7l8iigy2rgjo
551441
551440
2026-08-11T17:40:47Z
Persino
2851
/* Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku */
551441
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ccjmhhqxyeiwmobqi0fvxd80xxads3m
551442
551441
2026-08-11T17:41:26Z
Persino
2851
/* Brak wyróżnionego spisu przy istnieniu głównego spisu książki */
551442
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tulva9562p8c3obb0vavznmh01s3gxy
551443
551442
2026-08-11T17:42:12Z
Persino
2851
/* {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} */
551443
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
q6bj6mro0yevnoctulvlxvqkebq3h91
551444
551443
2026-08-11T17:42:52Z
Persino
2851
/* {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} */
551444
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
acu17z3vtfaejw82sgtnn7ytek05irz
551445
551444
2026-08-11T17:46:36Z
Persino
2851
/* {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} */
551445
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
47rupu6ia1h0p7m0vine92jx8yz6fts
551446
551445
2026-08-11T17:47:10Z
Persino
2851
/* {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} */
551446
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sp76xzytkicd2omaklrjukz4s56dmh1
551447
551446
2026-08-11T17:47:48Z
Persino
2851
/* {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} */
551447
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sk9h25ci4xyhl6tjtlz4ooz0cp4cspb
551448
551447
2026-08-11T17:49:00Z
Persino
2851
/* {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} */
551448
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
l4fms6nye2ajoka7fb5dkwpk9b7xpyr
551449
551448
2026-08-11T17:49:21Z
Persino
2851
/* {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} */
551449
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6cxjh87raim44xlfnpfl1vktmpmz3js
551450
551449
2026-08-11T17:49:56Z
Persino
2851
/* {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} */
551450
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1y3rg693447tz9rhqpln7lpt13yo1sr
551451
551450
2026-08-11T17:51:28Z
Persino
2851
/* Spis główny książki do spisu głónego bieżącego podręcznika */
551451
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m69ej5b39avgh7mte0l9es933phugjv
551452
551451
2026-08-11T17:52:02Z
Persino
2851
/* Spis główny książki do spisu głónego bieżącego podręcznika */
551452
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
06e8042j3d0ykaiof5jd5yuzbdhc2l3
551453
551452
2026-08-11T17:52:39Z
Persino
2851
/* Operowanie na tabicy spisu książki */
551453
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8snnn48fw3q1odlrw6n45uedilt2lf8
551454
551453
2026-08-11T17:53:36Z
Persino
2851
/* Tworzenie nazwy modułu */
551454
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
75wr9u3rabz7a6gwa0o30yoso3ahn9n
551455
551454
2026-08-11T17:54:34Z
Persino
2851
/* Tworzenie nazwy modułu */
551455
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qvvivcu7knezp6bfytpsxrmsr8xebdl
551456
551455
2026-08-11T17:55:01Z
Persino
2851
/* Przekierowania dla stron bez spisu */
551456
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cw9tqd5mwelbsjvdj9vdhpxygmnpjwg
551457
551456
2026-08-11T17:55:20Z
Persino
2851
/* Zmienne nazw danego bieżącego artykułu książki */
551457
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8qlgulvt6cfit2qprhoydxpmmxp1jar
551458
551457
2026-08-11T17:55:47Z
Persino
2851
/* Nazwa modułu aktualna lub bieżąca */
551458
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j4bpo3j1yqjlo5l2h39u37hswinuuhu
551459
551458
2026-08-11T17:56:11Z
Persino
2851
/* Dane artykułu i książki, bieżącej */
551459
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
e7tff8qrwwqq1li7dzss54n16afve99
551460
551459
2026-08-11T17:56:41Z
Persino
2851
/* Informacje o analizowanym artykule */
551460
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cqt1jr8lodacn13bfe78ltvyw0srx3d
551461
551460
2026-08-11T17:57:04Z
Persino
2851
/* Strona zbiorcza */
551461
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hu00qtib1q3h4fq7a3ytar53iku7uyo
551462
551461
2026-08-11T17:57:54Z
Persino
2851
/* Liczenie rozwiniętej zakodowanej zawartości danego artykułu */
551462
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hqy3wrjdtw3lul29eih37ojh3w8lls7
551463
551462
2026-08-11T17:58:18Z
Persino
2851
/* Przypadek innej strony aktualnej niż bieżącej */
551463
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7415rwaghqgli27cm0xdj91xz5fze6e
551464
551463
2026-08-11T17:58:55Z
Persino
2851
/* Wystawienie do struktury tablic z danymi informacji o artykule */
551464
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8gh115at39o6uyusxlntc53c9expacj
551465
551464
2026-08-11T17:59:16Z
Persino
2851
/* Rozważania nad adresem artykułu bieżącego, czy nie */
551465
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mst7es6xtp0jzq0r26620epp82hvaek
551466
551465
2026-08-11T17:59:37Z
Persino
2851
/* Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy */
551466
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
efhmxfb733432b2bfcrdzz75ppfrog9
551467
551466
2026-08-11T18:00:02Z
Persino
2851
/* Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu */
551467
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
47y7t04hteco141s8ncohzghph3f449
551468
551467
2026-08-11T18:00:32Z
Persino
2851
/* Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu */
551468
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jy65c8jq9mwzbwlfid9smjazngpx2z3
551469
551468
2026-08-11T18:01:15Z
Persino
2851
/* Dane zebrane o szablonach tekstu - zbieranie informacji */
551469
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c4xszhm02c8qto2g2wom6cvevkbvu1o
551470
551469
2026-08-11T18:01:43Z
Persino
2851
/* Dane zebrane o szablonach tekstu - zbieranie informacji */
551470
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7nkdtpoapgsmxerfucw09uku823pjpj
551471
551470
2026-08-11T18:02:03Z
Persino
2851
/* Zwracane wartości i ich opis */
551471
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n6jfs97f86xuqiquw3b5c1xgfxyiihn
551472
551471
2026-08-11T18:02:37Z
Persino
2851
/* Szablony tekstu */
551472
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacji też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}.
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry artykułu}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po prarametrach: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
Dla elementu: {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, o nazwie takiej samej jak ten parametr zwracany.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, lub podtatela: {{LinkPatrz|dane_analizy_stron}}, nie istnieje.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
Parametry funkcji:
* brak.
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{linkPatrz|tablica_ksiazki}}, jest inicjowany element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest wartością fałszywą, to iniciowaną tablicy: {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}}, tabeli: {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Dla tabeli: {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim {{Code|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana wartością: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartością {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy artykuł jest analizowany, wtedy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}}, sprawdzane, czy jego element {{LinkPatrz|spis}} istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja słuzy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}}, temu z: {{Code|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{Code|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}} z {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{Code|artykul}} {{Patrz|artykul}} i kod uzyskanego wyniku {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}. Kolejne nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są liczone z: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości. Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}. Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Nasstępnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{LinkPatrz|artykul}} i {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
A gdy przeciwnie dla: {{LinkPatrz|tabela_artykulow}}, dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} prawdziwego, gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika i artykułu, wtedy ustawiamy problem: {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a dla {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} fałszywego dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}}, przeciwnie są liczone nazwy: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość, przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, lub gdy wartość: {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość {{Code|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy istnieniu tabeli parametrów: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Dunkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Tom I}}.
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Gdy parametr: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''Stronicowego Parsera''', czyli stronicowe. Przeciwnie jest to samo robione, tylko na początku z róznicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
Parametry funkcji:
* Brak.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, i zwracany jest wynik jak poprzednio.
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}} zmiennej: {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}. A artykuł bazowy {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{LinkPatrz|artykul_bazowy}}. Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis {{LinkPatrz|spis}} istnieje aktualnej książki, czyli zmienna: {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{LinkPatrz|kod_wyniku}}, którego w dalszej instrukcji warunkowej mamy w niej: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej {{LinkPatrz|artykul}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} z parametrów: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Przekierowania dla stron bez spisu ====
Liczymy {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, która wywoływana jest bez parametrów.
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu}}.
Gdy zmienna {{LinkPatrz|wynik}} jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
Gdy {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli nie istnieje, i jej podtablica pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''Stronicowy Parser''', dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} i {{Code|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}, przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}}.
Gdy artykuł nie jest korzystany, tzn. z: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, i dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}}, gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innnej stronie niż normalnie. Dla tej strony są liczone dla tablicy podanej zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} i dalszym kluczem {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} tworzymy podtablicę o kluczu {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}} z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}} w głównej tablicy artykułu: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja}}, uruchamiana z pewnymi parametrami.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, wtedy jej podzmienne o kluczach: {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}} o kluczu {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, przyjmuje wartość fałszywą, wtedy zmienną {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, wtedy dajemy jej wartość: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Dalej dla tablicy {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn. {{LinkPatrz|tablica_danych_nazwy_artykulu}}. Te stworzone tutaj zmienne kasujemy dla: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, prawdziwego. Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
98kpy54wvsuweai5w2j7m7h5x5ck7ze
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron
4
63914
551473
2026-08-11T18:10:46Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Spis tresci == * {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}} * {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}} * {{lru|Moduły/St…”
551473
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Spis tresci ==
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ggfo54ljn3g7zul9dzz4kp1stouim03
551480
551473
2026-08-11T18:29:06Z
Persino
2851
/* Spis tresci */
551480
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Spis treści ==
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
d6awm43lbks8fic6jx3irddiqjcd166
551510
551480
2026-08-12T00:02:16Z
Persino
2851
551510
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4jolbe1dsvn0g4egwkqgs7x7n8yiyov
551511
551510
2026-08-12T00:12:00Z
Persino
2851
551511
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych i dla przejrzystości. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}}
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eemvrxp1pm0l3y8d61q6hcfoh7b0xiu
551512
551511
2026-08-12T00:33:02Z
Persino
2851
/* Spis treści */
551512
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych i dla przejrzystości. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}} - funkcje do zbierania informacji o uchwycie danego obiektu, nie linków, a także czasami do ich wydobywania, w przypadku elementow bez numeracji ze specjalnej tablicy, dotyczących szablonów (fukcji) nagłówka,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}} - funkcje do przetwarzania zebranych parametrów szablonów, a także do sprawdzania, czy taki artykuł jest w spisie podręcznika,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}} - funkcje szablonów kontenerów, które na samym końcu wywołują w rezultacie jedną funkcję do zbierania informacji o stronie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}} - funkcje do sprawdzania, np. poprawności strony,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}} - funkcje do zbierania informacji o linkach z uchwytami do obiektów, nie linków, a nawet do zbierania informacji o stronie, jeżeli link na to wskazuje, w przypadku jeszcze nie przeanalizowanej, tą stroną nie może być strona bieżąca, bo ona jest w trakcje badania przy pomocy analizy,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}} - główna funkcja analizowania strony z obiektami, nie linków, z uchwytami, alke też do nich w linkach, szablonów kontenerów, jeżeli one dostarczają pewnych informacji, lub nic nie wyświetlają, lub zwracają błąd w przypadku niepowodzenia.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ar7w12dts6onnytkmv59e4uui9aa5vp
551513
551512
2026-08-12T00:37:33Z
Persino
2851
/* Spis treści */
551513
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych i dla przejrzystości. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}} - funkcje do zbierania informacji o uchwycie danego obiektu, nie linków, a także czasami do ich wydobywania, w przypadku elementow bez numeracji ze specjalnej tablicy, dotyczących szablonów (funkcji) nagłówka,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}} - funkcje do przetwarzania zebranych parametrów szablonów, a także do sprawdzania, czy taki artykuł jest w spisie podręcznika,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}} - funkcje szablonów kontenerów, które na samym końcu wywołują w rezultacie jedną funkcję do zbierania informacji o stronie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}} - funkcje do sprawdzania, np. poprawności nazwy strony, i ustawiania pewnych problemów,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}} - funkcje do zbierania informacji o linkach z uchwytami do obiektów, nie linków, a nawet do zbierania informacji o stronie, jeżeli link na to wskazuje, w przypadku jeszcze nie przeanalizowanej, tą stroną nie może być strona bieżąca, bo ona jest w trakcje badania przy pomocy analizy, w przypadku niepoprawnosci strony w przypadku linków funkcja zwraca problemy, które ustawia, dzięki którymmożna zrzucić kategorie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}} - główna funkcja analizowania strony z obiektami, nie linków, z uchwytami, alke też do nich w linkach, szablonów kontenerów, jeżeli one dostarczają pewnych informacji, lub nic nie wyświetlają, lub zwracają błąd w przypadku niepowodzenia. Ta funkcja ustawia pewne problemy, do zwracania, np. pewnych kategorii, lub tylko do informacji, jeżeli ma to pomóć w przyszybszeniu funkcji.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
glna0a9pbddf2xxxw1niqjh27klgsts
551514
551513
2026-08-12T00:40:03Z
Persino
2851
/* Spis treści */
551514
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych i dla przejrzystości. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
Te strony są opisem funkcji w określonym module, tutaj wskazanym, ale w nagłówku tego modułu:
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}} - do zbierania informacji o uchwycie danego obiektu, nie linków, a także czasami do ich wydobywania, w przypadku elementow bez numeracji ze specjalnej tablicy, dotyczących szablonów (funkcji) nagłówka,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}} - funkcje do przetwarzania zebranych parametrów szablonów, a także do sprawdzania, czy taki artykuł jest w spisie podręcznika,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}} - szablonów kontenerów, które na samym końcu wywołują w rezultacie jedną funkcję do zbierania informacji o stronie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}} - do sprawdzania, np. poprawności nazwy strony, i ustawiania pewnych problemów,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}} - do zbierania informacji o linkach z uchwytami do obiektów, nie linków, a nawet do zbierania informacji o stronie, jeżeli link na to wskazuje, w przypadku jeszcze nie przeanalizowanej, tą stroną nie może być strona bieżąca, bo ona jest w trakcje badania przy pomocy analizy, w przypadku niepoprawnosci strony w przypadku linków funkcja zwraca problemy, które ustawia, dzięki którymmożna zrzucić kategorie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}} - z główną funkcją do analizowania strony z obiektami, nie linków, z uchwytami, alke też do nich w linkach, szablonów kontenerów, jeżeli one dostarczają pewnych informacji, lub nic nie wyświetlają, lub zwracają błąd w przypadku niepowodzenia. Ta funkcja ustawia pewne problemy, do zwracania, np. pewnych kategorii, lub tylko do informacji, jeżeli ma to pomóć w przyszybszeniu funkcji.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i40bndmkziu1hkynr5jauf1kz07v9ee
551515
551514
2026-08-12T00:41:05Z
Persino
2851
/* Spis treści */
551515
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych i dla przejrzystości. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
Te strony są opisem funkcji w określonym module, tutaj wskazanym, ale w nagłówku tego modułu, czyli to są opisy w rozdziałach, w których są funkcje:
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}} - do zbierania informacji o uchwycie danego obiektu, nie linków, a także czasami do ich wydobywania, w przypadku elementow bez numeracji ze specjalnej tablicy, dotyczących szablonów (funkcji) nagłówka,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}} - do przetwarzania zebranych parametrów szablonów, a także do sprawdzania, czy taki artykuł jest w spisie podręcznika,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}} - szablonów kontenerów, które na samym końcu wywołują w rezultacie jedną funkcję do zbierania informacji o stronie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}} - do sprawdzania, np. poprawności nazwy strony, i ustawiania pewnych problemów,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}} - do zbierania informacji o linkach z uchwytami do obiektów, nie linków, a nawet do zbierania informacji o stronie, jeżeli link na to wskazuje, w przypadku jeszcze nie przeanalizowanej, tą stroną nie może być strona bieżąca, bo ona jest w trakcje badania przy pomocy analizy, w przypadku niepoprawnosci strony w przypadku linków funkcja zwraca problemy, które ustawia, dzięki którymmożna zrzucić kategorie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}} - z główną funkcją do analizowania strony z obiektami, nie linków, z uchwytami, alke też do nich w linkach, szablonów kontenerów, jeżeli one dostarczają pewnych informacji, lub nic nie wyświetlają, lub zwracają błąd w przypadku niepowodzenia. Ta funkcja ustawia pewne problemy, do zwracania, np. pewnych kategorii, lub tylko do informacji, jeżeli ma to pomóć w przyszybszeniu funkcji.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7tjg1jd3eirhna37r4duhwblklbb472
551516
551515
2026-08-12T00:45:44Z
Persino
2851
/* Spis treści */
551516
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Jest to spis treści dla modułów o opisywanym module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, i jej funkcjach, którego dokumentacja jest w różnych modułach, ze względów optymalizacyjnych i dla przejrzystości. Każda taka strona opisuje inny aspekt zestawu funkcji, które mają coś podobnego do siebie, i dlatego tak zostały tam umieszczone.
== Spis treści ==
Te strony są opisem funkcji w określonym module, tutaj wskazanym, ale w nagłówku tego modułu, czyli to są opisy w rozdziałach, w których są funkcje:
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom I}} - do zbierania informacji o uchwycie danego obiektu, nie linków, a także czasami do ich wydobywania, w przypadku elementow bez numeracji ze specjalnej tablicy, dotyczących szablonów (funkcji) nagłówka,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom II}} - do przetwarzania zebranych parametrów szablonów, a także do sprawdzania, czy taki artykuł jest w spisie podręcznika,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom III}} - szablonów kontenerów, które na samym końcu wywołują w rezultacie jedną funkcję do zbierania informacji o stronie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV}} - do sprawdzania, np. poprawności nazwy strony, i ustawiania pewnych problemów,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom V}} - do zbierania informacji o linkach z uchwytami do obiektów, nie linków, a nawet do zbierania informacji o stronie, jeżeli link na to wskazuje, w przypadku jeszcze nie przeanalizowanej, tą stroną nie może być strona bieżąca, bo ona jest w trakcje badania przy pomocy analizy, w przypadku niepoprawnosci strony w przypadku linków funkcja zwraca problemy, które ustawia, dzięki którymmożna zrzucić kategorie,
* {{lru|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI}} - z główną funkcją do analizowania strony z obiektami, nie linków, z uchwytami, ale też do nich w linkach, sprawdza i zbiera informacje o szablonach kontenerów, jeżeli one dostarczają pewnych informacji, lub nic nie wyświetlają, lub zwracają błąd w przypadku niepowodzenia. Ta funkcja ustawia pewne problemy, do zwracania, np. pewnych kategorii, lub tylko do informacji, jeżeli ma to pomóć w przyszybszeniu funkcji.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g5ysxs83dkz4dfzh5ouwyyt3kt7xdp0
Szablon:LzLua
10
63915
551532
2026-08-12T03:06:10Z
Persino
2851
Utworzono nową stronę „<includeonly>{{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g={{{1}}}|b=tak}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>”
551532
wikitext
text/x-wiki
<includeonly>{{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g={{{1}}}|b=tak}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
0l84m4bfznkgjchwcfzih5gkzdfnins
Szablon:LzLua/opis
10
63916
551533
2026-08-12T03:07:08Z
Persino
2851
Utworzono nową stronę „{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} </includeonly>”
551533
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony podręczników}}
</includeonly>
52rgpx2474235dqns23ktn50680v1yy
551545
551533
2026-08-12T04:19:29Z
Persino
2851
/* Użycie */
551545
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon otacza link zewnętrzny wygenerowaany za pomocą szablonu {{s|lz}}, który jest napisem komputerowym przy pomocy {{s|Code}}. Ten link jest to link do funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, na stronie: https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl.
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony podręczników}}
</includeonly>
c33zrwovrsukaihixb52mqgkb05gpi3
551546
551545
2026-08-12T04:21:18Z
Persino
2851
/* Przykład */
551546
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon otacza link zewnętrzny wygenerowaany za pomocą szablonu {{s|lz}}, który jest napisem komputerowym przy pomocy {{s|Code}}. Ten link jest to link do funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, na stronie: https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl.
== Opis parametrów ==
== Przykład ==
; Przykład{{dk}}
* {{Code|{{s|LzLua|mw.ustring.gsub}}}} → {{LzLua|mw.ustring.gsub}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony podręczników}}
</includeonly>
m27oqcjxnft5n2sxzilw5cw60lxmd8n
551547
551546
2026-08-12T04:31:13Z
Persino
2851
551547
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon otacza link zewnętrzny wygenerowaany za pomocą szablonu {{s|lz}}, który jest napisem komputerowym przy pomocy {{s|Code}}. Ten link jest to link do funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, na stronie: https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl.
== Opis parametrów ==
== Przykład ==
; Przykład{{dk}}
* {{Code|{{s|LzLua|mw.ustring.gsub}}}} → {{LzLua|mw.ustring.gsub}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Nazwa funkcji w dokumentacji w Lua w Scribunto",
"type": "string",
"required": true
}
},
"description": "Funkcja tworzy link: \"https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl\", w dokumentacji w Lua w Scribunto, do funkcji w niej, we wskazane miejsce przez nagłówek linku, którym jest jednocześnie możliwym identyfikatorem na tej stronie internetowym w MediaWiki."
}
</templatedata>
== Zobacz też ==
* {{s|lz}} - szablon do tworzenia linków zewnętrznych do pewnej strony z mozliwym pewnym nagłówkiem i nazwą,
* {{s|Code}} - szablon znacznika {{Tag|code}}, do wygenerowania kodu komputerowego, jest używany do wyświetlania komputerowego linków, ale nie samego bezpośrednio linku zewnętrznego, tylko pośrednnio, do dokumentacji.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony podręczników}}
</includeonly>
b7d2ckgub9dlpd7z4or6w8s7co6p0ky
551548
551547
2026-08-12T04:33:10Z
Persino
2851
/* Opis parametrów */
551548
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon otacza link zewnętrzny wygenerowaany za pomocą szablonu {{s|lz}}, który jest napisem komputerowym przy pomocy {{s|Code}}. Ten link jest to link do funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, na stronie: https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl.
== Opis parametrów ==
* {{Code|1}} - nazwa funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
== Przykład ==
; Przykład{{dk}}
* {{Code|{{s|LzLua|mw.ustring.gsub}}}} → {{LzLua|mw.ustring.gsub}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Nazwa funkcji w dokumentacji w Lua w Scribunto",
"type": "string",
"required": true
}
},
"description": "Funkcja tworzy link: \"https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl\", w dokumentacji w Lua w Scribunto, do funkcji w niej, we wskazane miejsce przez nagłówek linku, którym jest jednocześnie możliwym identyfikatorem na tej stronie internetowym w MediaWiki."
}
</templatedata>
== Zobacz też ==
* {{s|lz}} - szablon do tworzenia linków zewnętrznych do pewnej strony z mozliwym pewnym nagłówkiem i nazwą,
* {{s|Code}} - szablon znacznika {{Tag|code}}, do wygenerowania kodu komputerowego, jest używany do wyświetlania komputerowego linków, ale nie samego bezpośrednio linku zewnętrznego, tylko pośrednnio, do dokumentacji.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony podręczników}}
</includeonly>
1b0c4hljdsu21dd8juw0gz8qftvou81
551549
551548
2026-08-12T04:34:18Z
Persino
2851
/* Opis parametrów */
551549
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon otacza link zewnętrzny wygenerowaany za pomocą szablonu {{s|lz}}, który jest napisem komputerowym przy pomocy {{s|Code}}. Ten link jest to link do funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, na stronie: https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl.
== Opis parametrów ==
* {{Code|1}} - nazwa funkcji w dokumentacji w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
== Wikikod szablonu ==
{{PreWikikod|LzLua}}
== Przykład ==
; Przykład{{dk}}
* {{Code|{{s|LzLua|mw.ustring.gsub}}}} → {{LzLua|mw.ustring.gsub}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Nazwa funkcji w dokumentacji w Lua w Scribunto",
"type": "string",
"required": true
}
},
"description": "Funkcja tworzy link: \"https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl\", w dokumentacji w Lua w Scribunto, do funkcji w niej, we wskazane miejsce przez nagłówek linku, którym jest jednocześnie możliwym identyfikatorem na tej stronie internetowym w MediaWiki."
}
</templatedata>
== Zobacz też ==
* {{s|lz}} - szablon do tworzenia linków zewnętrznych do pewnej strony z mozliwym pewnym nagłówkiem i nazwą,
* {{s|Code}} - szablon znacznika {{Tag|code}}, do wygenerowania kodu komputerowego, jest używany do wyświetlania komputerowego linków, ale nie samego bezpośrednio linku zewnętrznego, tylko pośrednnio, do dokumentacji.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony podręczników}}
</includeonly>
5mq80qddstq5ldcd2nm3324q50jqqny
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom II
4
63917
551557
2026-08-12T05:52:01Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} == == {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpis…”
551557
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
r46fv4mwy0dihac5ss781wv2w62gt1f
551585
551557
2026-08-12T11:57:32Z
Persino
2851
551585
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n2wnl40q8x2z9cc65xbepbdvb025fhz
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom III
4
63918
551579
2026-08-12T11:44:05Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} == == {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpis…”
551579
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4xvdu6cd8d3118q4xxzq3051nwtlr94
551580
551579
2026-08-12T11:51:57Z
Persino
2851
551580
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ju1f2vddz6gdzvjcj2mtcoscm3033ar
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV
4
63919
551581
2026-08-12T11:53:28Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} == == {{…”
551581
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p58zs4yjiz800emsd9d2rbvfx7ue6a7
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom V
4
63920
551582
2026-08-12T11:54:52Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} == == {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{…”
551582
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
== {{Śródtytuł|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}}{{Code|p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3sx6gviqmb3m3841ilgn8o36xn668hq
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VI
4
63921
551583
2026-08-12T11:55:51Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} == == {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzecz…”
551583
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3eta1xxrpygtzsg1xvp4y2wtaylg49k
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VII
4
63922
551584
2026-08-12T11:57:08Z
Persino
2851
Utworzono nową stronę „<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w…”
551584
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
e8a194jxyuxrxek7uyd415ya2s76sqi