Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.39.0-wmf.25
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
Gadżet
Dyskusja gadżetu
Definicja gadżetu
Dyskusja definicji gadżetu
Moduł:StronicowyParser
828
34347
437984
437957
2022-08-17T16:55:59Z
Persino
2851
Scribunto
text/plain
local p = {}
function p.SpreparowanyWikikodStrony(nazwa_modolu,dokumentacja)
local stronicowyparser_dalszefunkcje=require("Module:StronicowyParser/DalszeFunkcje")
return stronicowyparser_dalszefunkcje.SpreparowanyWikikodStrony(nil,nazwa_modolu,dokumentacja);
end;
function p.PrzekierowanieDoStrony(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_modulu=PobierzParametr(1);
local latki_modul=require("Module:Łatki");
return latki_modul.contentMatch{args={
[1]="^%s*#REDIRECT%s+%[%[(.+)%]%]%s*",
[2]="^%s*#PATRZ%s+%[%[(.+)%]%]%s*",
[3]="^%s*#TAM%s+%[%[(.+)%]%]%s*",
namespace="",
pagename=nazwa_modulu,
},
};
end;
p["TekstRozdziałuStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.TekstRozdzialuStrony(frame);
end;
p["KtóraSekcjaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.KtoraSekcjaStrony(frame);
end;
p["ZwróćSekcjęNagłówkaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.ZwrocSekcjeNaglowkaStrony(frame);
end;
p["NastępnyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(frame);
local numer=tonumber(args[1]) or 0;
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu_z_naglowkiem_match=mw.ustring.match(nazwa_artykulu,"^([^#]*)#.*$");
local nazwa_artykulu_z_opcja_naglowek=(not naglowek) and nazwa_artykulu_z_naglowkiem_match or nazwa_artykulu;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu,numer) or nil;
local i=0;
local tab_artykul={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
local artykul_w_bazie;local artykul_bez_naglowka_w_bazie;local artykul_z_naglowkiem_w_bazie;
local czy_table=parametry_modul.TypeTable(artykul_w_bazie_element[1]);
if(czy_table)then
artykul_w_bazie=artykul_w_bazie_element[1][1];
else
artykul_w_bazie=artykul_w_bazie_element[1];
end;
local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_w_bazie,"^([^#]*)#.*$");
artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_w_bazie;
if(naglowek or not tab_artykul[artykul_bez_naglowka_w_bazie])then
if(not naglowek)then
tab_artykul[artykul_bez_naglowka_w_bazie]=true;
end
if(not naglowek)then
artykul_z_naglowkiem_w_bazie=artykul_bez_naglowka_w_bazie;
else
artykul_z_naglowkiem_w_bazie=artykul_w_bazie;
end;
local numer_artykulu_w_bazie;
if(numer>0)then
numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul_bez_naglowka_w_bazie);
end;
local function Nastepny()
if(not nazwa)then
return artykul_z_naglowkiem_w_bazie;
end;
if(czy_table)then
return artykul_w_bazie[1][2];
else
return artykul_z_naglowkiem_w_bazie;
end;
end;
if(i==1)then
if(numer>0)then
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(artykul_bez_naglowka,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
return Nastepny();
end;
else
return Nastepny();
end;
else
if((not naglowek)and(artykul_bez_naglowka_w_bazie==nazwa_artykulu_z_opcja_naglowek)
or(((naglowek) and ((nazwa_artykulu_z_naglowkiem_match and artykul_z_naglowkiem_w_bazie_match)or(not nazwa_artykulu_z_naglowkiem_match and not artykul_z_naglowkiem_w_bazie_match)))
and (artykul_z_naglowkiem_w_bazie==nazwa_artykulu)
))then
i=1;
end;
end;
end;
end;
end;
end;
if(i==1)then
return "";
end;
return "(błąd)";
end;
p["PoprzedniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(frame);
local numer=tonumber(args[1]) or 0;
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu_z_naglowkiem_match=mw.ustring.match(nazwa_artykulu,"^([^#]*)#.*$")
local nazwa_artykulu_z_opcja_naglowek=(not naglowek) and nazwa_artykulu_z_naglowkiem_match or nazwa_artykulu;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu,numer) or nil;
local artykul;
local tab_artykul={};
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 artykul_z_naglowkiem_w_bazie;local artykul_bez_naglowka_w_bazie;
local czy_table=parametry_modul.TypeTable(artykul_w_bazie[1]);
if(czy_table)then
artykul_z_naglowkiem_w_bazie=artykul_w_bazie[1][1];
else
artykul_z_naglowkiem_w_bazie=artykul_w_bazie[1];
end;
local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_z_naglowkiem_w_bazie,"^([^#]*)#.*$")
artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_z_naglowkiem_w_bazie;
if(naglowek or not tab_artykul[artykul_bez_naglowka_w_bazie])then
if(not naglowek)then
tab_artykul[artykul_bez_naglowka_w_bazie]=true;
end;
if((not naglowek)and(artykul_bez_naglowka_w_bazie==nazwa_artykulu_z_opcja_naglowek)
or(((naglowek) and ((nazwa_artykulu_z_naglowkiem_match and artykul_z_naglowkiem_w_bazie_match)or(not nazwa_artykulu_z_naglowkiem_match and not artykul_z_naglowkiem_w_bazie_match)))and(artykul_z_naglowkiem_w_bazie==nazwa_artykulu)))then
if(not artykul)then return "";end;
local czy_table_artykul=parametry_modul.TypeTable(artykul);
if(czy_table_artykul)then
if(not nazwa)then
if(naglowek)then
return artykul[1];
end;
artykul,_=mw.ustring.gsub(artykul[1],"^([^#]+)#(.*)$","%1");
return artykul;
else
return artykul[2];
end;
else
if(naglowek)then
return artykul;
end;
artykul,_=mw.ustring.gsub(artykul,"^([^#]+)#(.*)$","%1");
return artykul;
end;
end
if(numer>0)then
local numer_artykulu_poprzedni=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(artykul_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_poprzedni)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
artykul=artykul_w_bazie[1];
end;
else
artykul=artykul_w_bazie[1];
end;
end;
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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu);
end;
p["PierwszyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 naglowek=parametry_modul.CzyTak(args["nagłówek"]);
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
if(not nazwa)then
local artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][1] or artykul_w_bazie[1];
return (not naglowek) and mw.ustring.gsub(artykul,"^([^#]*)#(.*)$","%1") or artykul;
else
return parametry_modul.TypeTable(artykul_w_bazie[1])
and artykul_w_bazie[1][2]
or ((not naglowek) and mw.ustring.gsub(artykul_w_bazie[1],"^([^#]*)#(.*)$","%1") or artykul_w_bazie[1]);
end;
end;
end;
end;
end;
p["OstatniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ostatni_artykul;
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
if(not nazwa)then
ostatni_artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][1] or artykul_w_bazie[1];
else
ostatni_artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][2] or artykul_w_bazie[1];
end;
end;
end;
end;
if(ostatni_artykul)then
return (not naglowek) and mw.ustring.gsub(ostatni_artykul,"^([^#]*)#(.*)$","%1") or ostatni_artykul;
end;
return "(błąd)";
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 element=stronicowyparser_potrzebne_modul:PomiedzyArtykul(frame) or nil;
if(not element)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_table=parametry_modul.TypeTable(element);
local element=czy_table and element[1] or element;
if(not nazwa)then return (not naglowek) and mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;end;
return czy_table and element[2] or ((not naglowek) and mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element);
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 element=stronicowyparser_potrzebne_modul:LosowyArtykul(frame);
if(not element)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_table=parametry_modul.TypeTable(element);
local element=czy_table and element[1] or element;
if(not nazwa)then return mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;end;
return czy_table and element[2] or mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;
end;
local function PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,typ)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local ktory=(tonumber(args["który"]) or 1);
local parametr_pierwszy_szablonu=typ and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or args[1];
if(not typ)then
parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"^[%s_]+","");
parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"[%s_]+$","");
parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"[%s_]+"," ");
end;
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumer_2=nil;
local tab_numer_2=nil;
local tab_numer={};
local i=(not poziomowo) and 0 or nil;
local i_2=nil;
local juz_nie_rozwazaj_spisu_tresci=nil;
local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local poziom_spisu_tresci=nil;
local pierwszy_dodatni_spis_tresci=nil;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local poziom_rozdzialu=tab_lista[1][2][1] or 0;
if(poziom_rozdzialu>0)then
local czy_nie_ten_rozdzial=nil;
local czy_jest_teraz_spis_tresci=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];local czy_nie_ten_rozdzial;
if((not juz_nie_rozwazaj_spisu_tresci)and(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(czy_jest_teraz_spis_tresci))then
poziom_spisu_tresci=poziom_rozdzialu;
juz_nie_rozwazaj_rozdzialu_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
elseif((not juz_nie_rozwazaj_spisu_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then
if((poziom_spisu_tresci<poziom_rozdzialu))then
czy_nie_ten_rozdzial=false;
else
juz_nie_rozwazaj_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
else
local juz_nie_rozwazaj_spisu_tresci=nil;
local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
local hnumer=HNumer(poziom_rozdzialu);
if(#tab_numer<hnumer)then
for i=#tab_numer+1,hnumer,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>hnumer)then
for i=#tab_numer, hnumer+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=tab_numer[#tab_numer]+1;
else
tab_numer[#tab_numer]=tab_numer[#tab_numer]+1;
end;
----
local wartosc=__FUNKCJA(poziomowo,i,tab_numer,ktory,parametr_pierwszy_szablonu,rozdzial);
----
if(wartosc)then return wartosc;end;
----
if((czy_jest_teraz_spis_tresci)and(not pierwszy_dodatni_spis_tresci))then
HNumer_2=HNumer;
HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_2=tab_numer;
tab_numer={};
pierwszy_dodatni_spis_tresci=true;
elseif((pierwszy_dodatni_spis_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu))then
HNumer=HNumer_2;
HNumer_2=nil;
tab_numer=tab_numer_2;
tab_numer_2=nil;
pierwszy_dodatni_spis_tresci=false;
end;
else
i=i+1;
----
local wartosc=__FUNKCJA(poziomowo,i,tab_numer,ktory,parametr_pierwszy_szablonu,rozdzial);
---
if(wartosc)then return wartosc;end;
---
if((czy_jest_teraz_spis_tresci)and(not pierwszy_dodatni_spis_tresci))then
i_2=i;
i=0;
pierwszy_dodatni_spis_tresci=true;
elseif((pierwszy_dodatni_spis_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu))then
i=i_2;
i_2=nil;
pierwszy_dodatni_spis_tresci=false;
end;
end;
end;
end;
end;
end;
p["PobierzNumerNagłówka"]=function(frame)
local s=1;
local function __FUNKCJA(poziomowo,i,tab_numer,ktory,naglowek,rozdzial)
if(naglowek==rozdzial)then
if(s==ktory)then
if(poziomowo)then
if(#tab_numer==0)then return;end;
return table.concat(tab_numer,".");
else
return i;
end;
end;
s=s+1;
end;
end;
return PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,false);
end;
p["PobierzNazwęNagłówka"]=function(frame)
local s=1;
local function __FUNKCJA(poziomowo,i,tab_numer,ktory,numer,rozdzial)
if(poziomowo)then
if(#tab_numer==0)then return;end;
if(numer==table.concat(tab_numer,"."))then
if(s==ktory)then
return rozdzial;
else
s=s+1;
end;
end;
elseif(numer==i)then
if(s==ktory)then
return rozdzial;
else
s=s+1;
end;
end
end;
return PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,true);
end;
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame,tabela_listy_danych_analizy_ksiazki);
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 naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
local pierwszy_parametr_szablonu=args[1] and (typ and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1])
or ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaStronyAdresu"](html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](args[1])),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaStronyAdresu"](html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](args[1])))
)
or (typ and 1 or "Przykładowy artykuł");
local ktory=(tonumber(args["ktory"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
--local HNumer=poziomowo and stronicowyparser_potrzebne_modul.LiczonyHNumer() or nil;
local HNumerPoziomow_4=nil--poziomowo and stronicowyparser_potrzebne_modul.LiczonyHNumer() or nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
--local HNumerPoziomowInnychNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local tab_numer=poziomowo and {} or nil;
tab_numer_1=nil;
tab_numer_3=nil
tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local czy_poziom_spisu_tresci=nil;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local juz_nie_rozwazaj_spisu_tresci=nil;
local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_spisu_tresci_naglowka=0;
local numer_poziomu=nil;
local ostatni_rozdzial_dodatni=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local prawdziwy_poziom_rozdzialu=nil;
local artykuly_w_rozdziale=nil;
local spis_tresci_zerowy;
local poziom_zerowy;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
function TabLista(tab_lista)
function Iterator(tab_lista)
local p1=0;local p2=0;
local s=0;
return function()
s=s+1;
if((tab_lista[3])and(tab_lista[3][p1+1])and(tab_lista[3][p1+1][5]==p2))then
p1=p1+1;
return s,tab_lista[3][p1];
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local tab_poprzedni_artykul_w_bazie=nil;
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local poziom_naglowka=nil;
if(poziomowo)then
local czy_nienilowy_rozdzial=tab_lista[1][2][1];
czy_pierwszy_nilowy=(m==1)and (czy_nienilowy_rozdzial==nil) or czy_pierwszy_nilowy;
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
--if(m>1)then
rozdzial=tab_lista[1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
--end;
tab_poziomowo={};
--[[local czy_jest_teraz_spis_tresci=((m>1)and(not spis_tresci_zerowy or not poziom_zerowy)or((m==1)and(spis_tresci_zerowy)))
and ((m==1) and true or tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])]]
local czy_jest_teraz_spis_tresci=(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)
and((m==1)and (czy_nienilowy_rozdzial and tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial] or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial]
or false));
if((m>1)and(czy_pierwszy_nilowy))then
czy_jest_teraz_spis_tresci=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
if(czy_jest_teraz_spis_tresci)then
juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
juz_nie_rozwazaj_spisu_tresci=nil;
czy_pierwszy_nilowy=nil;
pierwszy_ujemny_spis_tresci=nil;
end;
end;
local czy_nie_ten_rozdzial;
if((not juz_nie_rozwazaj_spisu_tresci)and(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(czy_jest_teraz_spis_tresci))then
poziom_spisu_tresci=poziom_rozdzialu;
juz_nie_rozwazaj_rozdzialu_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
elseif((not juz_nie_rozwazaj_spisu_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then
if((poziom_spisu_tresci<poziom_rozdzialu))then
czy_nie_ten_rozdzial=false;
else
juz_nie_rozwazaj_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
else
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
--if(not czy_nie_ten_rozdzial)then
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
artykuly_w_rozdziale=nil;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu;
poziom_pierwszego_ujemnego_spisu_tresci=nil;
poprzedni_tab_poziomowo=nil;
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
end;
if(pierwszy_ujemny_spis_tresci)then
HNumerPoziomow=HNumerPoziomow_2;
HNumerPoziomow_2=nil;
tab_numer=tab_numer_2;
tab_numer_2=nil;
pierwszy_ujemny_spis_tresci=nil;
czy_poziom_ujemny_spisu_tresci=nil;
end;
if(not glowny_dodatni_rozdzial)then
if((juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(not juz_nie_rozwazaj_spisu_tresci)and(not czy_jest_teraz_spis_tresci)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
spis_tresci=true;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu);
end;
end;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
glowny_dodatni_rozdzial=false;
end;
ostatni_rozdzial_dodatni=poziom_rozdzialu;
elseif(poziom_znakowy_rozdzialu<0)then
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(ostatni_poczatek_artykulu~=poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
end;
else
if((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(ostatni_poczatek_artykulu==poziom_poczatku_rozdzialu)
)then pierwszy_rowny_rozdzial=0;end;
poziom_rozdzialu=poziom_rozdzialu+pierwszy_rowny_rozdzial;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
end;
if(not glowny_ujemny_rozdzial)then
--if((juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(not juz_nie_rozwazaj_spisu_tresci)and(not spis_tresci))then
-- numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
-- spis_tresci=true;
--else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka);
--end;
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,numer_rozdzialu_dodatniego+1);
end;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,(HNumerPoziomowNaglowkow(0) or 0)+1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and((not czy_pierwszy_nilowy)or(not czy_jest_teraz_spis_tresci))))then
poziom_zerowego_naglowka=1;
numer_rozdzialu=HNumerPoziomow( 1 + (ostatni_rozdzial_dodatni or 0) + 0);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
poziom_naglowka= 1 + (ostatni_rozdzial_dodatni or 0) + 0;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_dodatni or 0) + 0;
end;
end;
local numer;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_znakowy_rozdzialu);
--HNumerPoziomowInnychNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
elseif(poziom_znakowy_rozdzialu<0)then
--local numer=HNumerPoziomowInnychNaglowkow(-poziom_znakowy_rozdzialu);
end;
if((m>1)
and(tab_lista_artykulow_w_ksiazce[m-1])
and(tab_lista_artykulow_w_ksiazce[m-1][2])
and(#tab_lista_artykulow_w_ksiazce[m-1][2]>0)
and(tab_lista_artykulow_w_ksiazce[m-1][2][#tab_lista_artykulow_w_ksiazce[m-1][2]][2][1]==0)
)then
local lens_tab_numer=#tab_numer;
local roznica=math.min(#poprzedni_tab_poziomowo+#tab_numer,numer_rozdzialu)-#tab_numer;
roznica=((roznica>0) and roznica or 0);
for i=1,roznica,1 do
tab_numer[i+lens_tab_numer]=poprzedni_tab_poziomowo[i];
end;
end;
if((czy_jest_teraz_spis_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then
if(poziom_znakowy_rozdzialu>0)then
poziom_spisu_tresci_naglowka=poziom_rozdzialu;
else
poziom_pierwszego_ujemnego_spisu_tresci=poziom_rozdzialu;
end;
end;
if(poziom_rozdzialu>0)then
if((((czy_poziom_dodatni_spisu_tresci)and(poziom_znakowy_rozdzialu>0))or((czy_poziom_ujemny_spisu_tresci)and(poziom_znakowy_rozdzialu<0)))
and(poziom_spisu_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu)
)then
if(poziom_znakowy_rozdzialu>0)then
tab_numer=tab_numer_1;
tab_poziomowo={};
poziom_spisu_tresci=nil;
HNumerPoziomow=HNumerPoziomow_1;
HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_1;
czy_poziom_dodatni_spisu_tresci=false;
elseif(poziom_znakowy_rozdzialu<0)then
tab_numer=tab_numer_2;
tab_poziomowo={};
poziom_spisu_tresci=nil;
HNumerPoziomow=HNumerPoziomow_2;
--HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_2;
czy_poziom_ujemny_spisu_tresci=false;
pierwszy_ujemny_spis_tresci=nil;
end;
end;
local hnumer=numer_rozdzialu;
if(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,hnumer-#tab_numer);
local len_tab_numer=#tab_numer;
for i=1,lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<hnumer)then
for i=#tab_numer+1,hnumer,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>hnumer)then
for i=#tab_numer, hnumer+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
else
--[[if(poziom_rozdzialu==0)then
if(tab_lista_artykulow_w_ksiazce[m+1])then
if(tab_lista_artykulow_w_ksiazce[m+1][1][2]>0)then
tab_numer={0,};
elseif(tab_lista_artykulow_w_ksiazce[m+1][1][2]<0)then
tab_numer={};
end;
else
tab_numer={};
end;
end;]]
end;
--end;
if((czy_jest_teraz_spis_tresci)and(((not pierwszy_dodatni_spis_tresci)and(poziom_znakowy_rozdzialu>0))or((not pierwszy_ujemny_spis_tresci)and(poziom_znakowy_rozdzialu<0))))then
function Poziom_dodatni()
for s,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(s>m)then
if((tab_lista[1][2][1] or 0)>0)then
if(math.abs(tab_lista[1][2][1] or 0)>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return false;
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
return true;
end;
end;
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
local poziom_artykulu=artykul_w_bazie[2][1];
if(prawdziwy_poziom_rozdzialu~=0)then
if(poziom_artykulu>poziom_rozdzialu)then
return true;
end;
else
return true;
end;
end;
end;
return false;
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni())))then
tab_poziomowo_1=tab_poziomowo;
tab_poziomowo={};
czy_poziom_dodatni_spisu_tresci=true;
HNumerPoziomow_1=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow_1=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_1=tab_numer;
tab_numer={};
pierwszy_dodatni_spis_tresci=true;
elseif((poziom_znakowy_rozdzialu<0)
and((czy_inaczej_numeruj_rozdzial_ujemny())or((tab_lista_artykulow_w_ksiazce[m+1])
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu))))then
tab_poziomowo_2=tab_poziomowo;
tab_poziomowo={};
czy_poziom_ujemny_spisu_tresci=true;
HNumerPoziomow_2=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
--HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
--HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_2=tab_numer;
tab_numer={};
pierwszy_ujemny_spis_tresci=true;
end;
end;
local function OTakimSamymLubMniejszymPoziomie(m)
if(poziom_rozdzialu==0)then return true;end;
local lens=parametry_modul["LiczbaElementówNumerowanychTablicy"](tab_lista_artykulow_w_ksiazce);
if(m==lens)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
for k=m+1,lens,1 do
if(tab_lista_artykulow_w_ksiazce[k])then
if((tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)<=poziom_rozdzialu)then
return true;
end;
end;
end;
end;
elseif(((m==1)or((tab_lista_artykulow_w_ksiazce[m-1])and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)))and(poziom_znakowy_rozdzialu<0))then
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu<=-prawdziwy_poziom_rozdzialu)then
return true;
end;
end;
end;
local poziom_zerowego_naglowka_innego=0;
for k=m+1,lens,1 do
if(tab_lista_artykulow_w_ksiazce[k])then
if((tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0;
if(ile==0)then
if((czy_jest_teraz_spis_tresci)and(m==1))then
poziom_zerowego_naglowka_innego=poziom_zerowego_naglowka;
else
poziom_zerowego_naglowka_innego=1;
end;
end;
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)+poziom_zerowego_naglowka_innego<=poziom_rozdzialu)then
return true;
end;
else
break;
end;
end;
end;
else
return true;
end;
end;
-- if(not czy_nie_ten_rozdzial)then
if((tab_lista[2])
and(tab_lista[2][1])
and(tab_lista[2][1][2][1]==0)
and(not tab_lista[2][1][4])
and(tab_lista_artykulow_w_ksiazce[m+1])
and(((poziom_znakowy_rozdzialu>0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)~=0)
))
)then
if(m==1)then
tab_numer={0,}
else
table.insert(tab_numer,0);
end;
elseif((m==1)and(not tab_lista_artykulow_w_ksiazce[m+1]))then
tab_numer={};
elseif((poziomowo)and(m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)==0))then
if(poprzedni_tab_poziomowo)then
local min=math.min(math.abs(numer_rozdzialu),#poprzedni_tab_poziomowo);
for i=#poprzedni_tab_poziomowo,min+1,-1 do
table.remove(poprzedni_tab_poziomowo,i)
end;
tab_numer=poprzedni_tab_poziomowo;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
elseif((not czy_jest_teraz_spis_tresci)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))or((not pierwszy_ujemny_naglowek)and(poziom_znakowy_rozdzialu<0))))then
if(poziom_rozdzialu>0)then
if(not OTakimSamymLubMniejszymPoziomie(m))then
if(poziom_znakowy_rozdzialu>0)then
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_3=tab_numer;
tab_numer={0,};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poziom_naglowka or 0>0)then
HNumerPoziomow(poziom_naglowka,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(poziom_znakowy_rozdzialu>0)then pierwszy_dodatni_naglowek=true;else pierwszy_ujemny_naglowek=true;end;
end;
end;
elseif((czy_jest_teraz_spis_tresci)and(not czy_nie_ten_rozdzial))then
if((not spis)and(poziom_rozdzialu>0)
and(tab_lista_artykulow_w_ksiazce[m+1])
and((
(poziom_znakowy_rozdzialu>0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
))
)then
tab_numer={0,};
spis=true;
end
elseif((tab_lista_artykulow_w_ksiazce[m+1])
and((
(poziom_znakowy_rozdzialu>0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2] or tab_lista[3])then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_tytul_rozdzial=nil;local poprzedni_b=nil;local ile_odjac=0;
local HNumerB=nil;
local poprzedni_poziom_artykulu=nil;
local czy_ma_elementy=nil;
local poziom_poprzedni_artykulu=nil;
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=artykul_w_bazie[1][1] or artykul_w_bazie[1];
artykul=(not naglowek)and mw.ustring.gsub(artykul,"^([^#]*)#(.*)$","%1") or artykul;
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
local w_rozdziale=artykul_w_bazie[2][4];
if(w_rozdziale)then
function CzyRozdzialMaArtykulyNieWewnetrzne()
for s,artykul_w_bazie in ipairs(tab_lista[2])do
if(s>p)then
if((tab_lista[2][s])and(not tab_lista[2][s][2][4]))then
return true;
end;
end;
end;
return false;
end;
function CzyRozdzialMaRozdzialyNieWewnetrzne()
for s,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(s>m)then
local poziom_rozdzialu=tab_lista[1][2][1] or 0;
if(poziom_rozdzialu<0)then
return true;
end;
end;
end;
return false;
end;
if((not artykuly_w_rozdziale)and((CzyRozdzialMaArtykulyNieWewnetrzne())or(CzyRozdzialMaRozdzialyNieWewnetrzne())))then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
else
if(not tab_lista[2][p+1])then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
end;
elseif(artykuly_w_rozdziale)then
artykuly_w_rozdziale=nil;
table.remove(tab_numer,#tab_numer);
tab_poziomowo={};
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer=tonumber(poziom_artykulu) or 1;
if(numer<1)then numer=1;end;
return numer;
end;
poziom_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_czysty_artykulu=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
if((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(#poziom_poczatku_artykulu==#poziom_poczatku_rozdzialu)
and(poziom_poczatku_artykulu~=poziom_poczatku_rozdzialu)
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or (mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)then
poziom_artykulu=poziom_artykulu+1;
poziom_czysty_artykulu=poziom_czysty_artykulu+1;
end;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
if(p>1)then
local numer_poprzedni=tonumber(tab_lista[2][p-1][2][1]) or 1;
local id_poprzednie=tab_lista[2][p-1][4];
local numer=tonumber(tab_lista[2][p][2][1]) or 1;
local id=tab_lista[2][p][4];
if((numer_poprzedni==0)and(not id_poprzednie)and(not id)and(numer>0))then
if(#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
tab_poziomowo={};
end;
end;
end;
local prefix_poziom_artykulu=poziom_artykulu;
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if(tab_poprzedni_artykul_w_bazie)then
if(poprzedni_poziom_artykulu)then
if(poprzedni_poziom_artykulu==poziom_artykulu)then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_nazwy_artykulu=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_nazwy_artykulu)then
b=b+1;
end;
end;
else
b=0;
end;
end;
if(poziom_znakowy_rozdzialu<0)then
if(#tab_numer~=0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerArtykulu=HNumerPoziomow_4;
elseif((poziom_poprzedni_artykulu)and(poziom_artykulu>(poziom_pierwszego_ujemnego_naglowka or 0))and(poziom_poprzedni_artykulu>(poziom_pierwszego_ujemnego_spisu_tresci or 0))and(poziom_artykulu<=(poziom_pierwszego_ujemnego_spisu_tresci or 0)))then
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
for i=#tab_poziomowo,numer_poziomu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0 ) + 1;
tab_poziomowo=tab_numer;
tab_numer={};
elseif((poziom_naglowka>=poziom_artykulu)or((poziom_rozdzialu==poziom_czysty_artykulu)
and((numer_poziomu<numer_rozdzialu)
or((numer_poziomu==numer_rozdzialu)
and(poziom_poczatku_rozdzialu==poziom_poczatku_artykulu)
))
))then
local tab_numer2={};
for i=1,(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka,1 do
tab_numer2[i]=tab_numer[i];
end;
local tab_poziomowo2={};
for i=(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1,#tab_numer,1 do
tab_poziomowo2[i-(HNumerPoziomowNaglowkow(0) or 0)-poziom_zerowego_naglowka]=tab_numer[i];
end;
local indeks=(((HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1>#tab_numer) and 0 or (#tab_numer-(HNumerPoziomowNaglowkow(0) or 0)-poziom_zerowego_naglowka));
for i=1,numer_poziomu,1 do
tab_poziomowo2[i+indeks]=tab_poziomowo[i];
end;
tab_numer=tab_numer2;
tab_poziomowo=tab_poziomowo2;
--[[tab_poziomowo=tab_numer;
tab_numer={};]]
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
--local numer_poziomu=HNumerPoziomow(poziom_artykulu+(ostatni_rozdzial_dodatni or 0),#tab_poziomowo+1);
end;
end;
end;
elseif(#tab_numer>numer_poziomu)then
tab_poziomowo={};
tab_poziomowo[1]=tab_numer[numer_poziomu];
for i=#tab_numer,numer_poziomu,-1 do
table.remove(tab_numer,i);
end;
elseif((#tab_numer<=numer_rozdzialu)and(numer_rozdzialu>=numer_poziomu))then
local numer_rozdzialu_dodatniego=(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka;
if((numer_rozdzialu_dodatniego>0)or((numer_rozdzialu==numer_poziomu)and(poziom_poczatku_rozdzialu==poziom_poczatku_artykulu)))then
if(#tab_numer>=numer_rozdzialu_dodatniego)then
local tab_numer2={};
for i=1,numer_rozdzialu_dodatniego,1 do
tab_numer2[i]=tab_numer[i];
end;
tab_poziomowo={};
for i=numer_rozdzialu_dodatniego+1,#tab_numer,1 do
tab_poziomowo[i-numer_rozdzialu_dodatniego]=tab_numer[i];
end;
tab_numer=tab_numer2;
end;
end;
end;
poprzedni_poziom_artykulu=poziom_artykulu;
local czy_z_rozdzialem=(tab_artykul_w_bazie[1]==rozdzial);
if((p==1)and(czy_z_rozdzialem))then b=1;end;
czy_tytul_rozdzial=((p==1)and true or czy_tytul_rozdzial) and (czy_z_rozdzialem);
local dodatek=b-((czy_tytul_rozdzial)and 0 or 1);
dodatek=((dodatek>0)and dodatek or 0);
if((poziomowo)and(poziom_znakowy_rozdzialu<0))then
if(poziom_naglowka>=poziom_artykulu)then
local numer_poziomu=HNumerPoziomu(poziom_naglowka,numer_rozdzialu-(HNumerPoziomowNaglowkow(0) or 0));
end;
end;
local stala=poziom_artykulu;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poziom_poprzedni_artykulu=poziom_artykulu;
end;
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo);
if(poziomowo)then
if(tab_lista[2][p+1])then
local numer_nastepny=tonumber(tab_lista[2][p+1][2][1]) or 1;
local id_nastepny=tab_lista[2][p+1][4];
local numer=tonumber(tab_lista[2][p][2][1]) or 1;
local id=tab_lista[2][p][4];
if((numer_nastepny==0)and(not id_nastepny)and(not id)and(numer>0))then
tab_poziomowo={tab_numer[(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1],};
for i=#tab_numer,(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1,-1 do
table.remove(tab_numer,i);
end;
end;
end;
poprzedni_tab_poziomowo=tab_poziomowo;
end;
if(wartosc)then return wartosc;end;
if(not poziomowo)then
i=i+1;
end;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{}); end;
end;
else
poprzedni_tab_poziomowo=nil;
if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{}); end;
end;
end;
return;
end;
p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,numer,rozdzial,artykul,tab_numer,tab_poziomowo)
if((not poziomowo)and(i==numer))then
if(s==ktory)then
return artykul;
else
s=s+1;
end;
elseif(poziomowo)then
if((table.concat(tab_numer,".")
..((#tab_numer>0) and "." or "")
..table.concat(tab_poziomowo,"."))==numer)then
if(s==ktory)then
return artykul;
else
s=s+1;
end;
end;
end;
end;
return PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true);
end;
p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,nazwa_artykulu,rozdzial,artykul,tab_numer,tab_poziomowo)
if(nazwa_artykulu==artykul)then
if(s==ktory)then
if(poziomowo)then
return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,"."));
else
return i;
end;
end;
s=s+1;
end;
end;
return PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
end;
p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json)
local tab_dane_ksiazki=nil;
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,nazwa_artykulu,rozdzial,artykul,tab_numer,tab_poziomowo)
if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end;
if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end;
local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or "";
repeat
numer_rozdzialu=mw.ustring.gsub(numer_rozdzialu,"%.0$","")
until not mw.ustring.match(numer_rozdzialu,"%.0$");
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu]={};
end;
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul]={};
end;
local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or "";
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu]={};
end;
table.insert(tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu],s);
s=s+1;
return false;
end;
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;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
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
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
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 artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
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 techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(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 czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
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;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
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:PelnaNazwaKsiazki(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:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((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:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(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];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
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_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_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_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 techniczne_modul=require("Module:Techniczne");
local szablon=techniczne_modul.NazwaSzablonu(nazwa_strony);
return frame:expandTemplate{title=szablon,args={},};
end;
p["KsiążkaSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"];
return str;
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_ksiazkowych;
local tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"];
if(not tab_stronasubst)then return;end;
local pierwszy,_=mw.ustring.gsub(args[1],"[%s_]+"," ");
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 "")];
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:SG/"))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 p=frame.args["wyspecjalizowana"] and frame or frame:getParent();
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.PodajRozdzial(p.args[1]);
local id2,_=mw.ustring.gsub(naglowek,"^[%s_]","");
id2,_=mw.ustring.gsub(id2,"[%s_]$","");
id2,_=mw.ustring.gsub(id2,"[%s_]","_");
local id3,_=mw.ustring.gsub(mw.uri.encode(mw.text.encode(id2),"WIKI"),"(%%)",".");
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 "")
..">"..((id2~=id3) and ("<span id=\""..id3.."\"></span>") or "").."<span id=\""..id2.."\" class=\"mw-headline\">"..naglowek.."</span></h6>";
elseif(licznik<1)then
local blad_module=require("Module:Błąd");
local frame2=pf:newChild{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},}
blad_module.error(frame2);
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 "")
.." class=\""..((parametry_modul.CzyTak(klasa)) and klasa or "").."\""
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..((id2~=id3) and ("<span id=\""..id3.."\"></span>") or "").."<span id=\""..id2.."\" class=\"mw-headline\">"..naglowek.."</span></h"..licznik..">";
end;
end;
function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local ksiazkowe_modul=require("Module:Książkowe");
local args=(frame)and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"])and frame.args or frame:getParent().args) or {};
local nazwa_przestrzeni=args[2] and nazwy_modul["NAZWAPRZESTRZENI"](args[2]) or tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=args[2] and ksiazkowe_modul["NazwaKsiążki"](args[2]) or tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=args[1] and args[1] or tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
local czy_nie_aktualny=(
(nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)
or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)
or (nazwa_artykulu~=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)
);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu].TOC)) then
mw.log(tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza,"Strona ziorcza");
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu].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;
function p.WykazModolow(frame,czy_rozciagnij)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local lista_ksiazek_w_przestrzeni_nazw=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_ksiazek_w_przestrzeni_nazw)then return nil;end;
local tab_lista_artykulow_w_ksiazce_w_ksiazce=lista_ksiazek_w_przestrzeni_nazw[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce_w_ksiazce)then return nil;end;
local spis=tab_lista_artykulow_w_ksiazce_w_ksiazce.spis;
if(not spis)then return nil;end;
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 wysokosc=frame.args["wysokość"];
local wykaz_modolow_w_liscie="";
local i=1;
for _,tab_artykul in ipairs(spis)do
if(tab_artykul[2])then
for _,tab_pozycja in ipairs(tab_artykul[2])do
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_modolow_w_liscie=((wykaz_modolow_w_liscie~="") and (wykaz_modolow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni=="")and nazwa_ksiazki or nazwa_przestrzeni..":"..nazwa_ksiazki).."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..sformatowana_nazwa_artykulu..'</span>]]</li>';
else
wykaz_modolow_w_liscie=((wykaz_modolow_w_liscie~="") and (wykaz_modolow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni=="")and nazwa_ksiazki or nazwa_przestrzeni..":"..nazwa_ksiazki).."/") or "#")..sformatowana_nazwa_artykulu.."|"..sformatowana_nazwa_artykulu.."]]|"..i.."|100%}}";
end;
i=i+1;
end;
end;
end;
end;
if(wykaz_modolow_w_liscie=="")then return nil;end;
if(not spis_ksiazkowy)then
wykaz_modolow_w_liscie="<ul>"..wykaz_modolow_w_liscie.."</ul>";
wykaz_modolow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:400px;overflow:auto;">'..wykaz_modolow_w_liscie.."</div>";
wykaz_modolow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:14px;line-height:1.2em;background-color:white;|tytuł=<div style="font-size:14px;line-height:1.2em;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modolow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}';
else
wykaz_modolow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:10px;width:auto;box-sizing:border-box;background-color:white;\">"..wykaz_modolow_w_liscie.."</div>";
end;
local rozwiniety_wikikod=frame:preprocess(wykaz_modolow_w_liscie);
return rozwiniety_wikikod;
end;
function p.NazwaModolu()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np');
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(nazwa_artykulu==nil)then
return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]";
else
return nazwa_artykulu;
end;
end;
function p.Wstep_do_licencji(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;
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 oraz miejsca pochodzenia książki i jej jakikolwiek części, a także treści, teksty, tabele, wykresy, rysunki, wzory i inne elementy oraz ich części zawarte w książce, i tą książkę, nawet w postaci przerobionej nie można umieszczać w jakikolwiek formie na czasopismach naukowych, archiwach prac, itp.]<BR>';
end;
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_ksiazkowych;
local menu_z_licencja;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][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:3px;width:100%;height:auto;box-sizing:border-box;">'..p.Wstep_do_licencji(frame)..'</div>';
menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:14px;line-height:1.2em;background-color:white;|tytuł=<div style="font-size:14px;line-height:1.2em;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=StatycznaWikitabelowaListaMenu}}';
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_ksiazkowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].licencja;
if(tabela_listy_danych_analizy_ksiazki.licencja)then
return licencja[1];
end;
end;
function p.PierwszaStrona(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:5px;font-size:1.9em;line-height:25px;text-align:left;">'..p.NazwaModolu()..'</div><hr style=\"margin:5px 0\"/>';
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_ksiazkowych;
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.WykazModolow(frame,czy_rozciagnij);
if(wykaz_artykulow~=nil)then
prawe_menu=prawe_menu.."<hr style=\"margin:5px 0\"/>"..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 style=\"margin:5px 0\"/>"..spis_tresci;
end;
end;
local wysokosc=frame.args["wysokość"];
return "<div style=\"padding:10px;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:700px;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;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;
function p.SpisTresci(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa_artykulu=args["artykuł"] or args[1];
local nazwa_ksiazki=args["książka"] or args[2];
if(not parametry_modul.CzyTak(nazwa_ksiazki))then
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~=nil) and (uzyskana_nazwa_przestrzeni..":") 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_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_ksiazki=html_modul.TransformacjaKlasyZnakowej(nazwa_ksiazki);
local nazwa_artykulu=html_modul.TransformacjaKlasyZnakowej(nazwa_artykulu);
local nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local pelna_nazwa_strony=(nazwa_przestrzeni=="")and nazwa_strony or nazwa_przestrzeni..":"..nazwa_strony;
local tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony);
local nazwa=args["nazwa"] or args[3];
local nazwa_strony_artykulu=parametry_modul.CzyTak(nazwa) and nazwa or mw.ustring.gsub(mw.ustring.match(nazwa_artykulu,"[^/]*$"),"_"," ");
local dodatek=args["dodatek"] or args[4];
if(not tekst_artykulu)then
if(nazwa_artykulu~="")then
return "\n"..mw.ustring.rep("=",6).."<span style=\"color:red\">[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]</span>"..mw.ustring.rep("=",6).."\n";
else
return frame:getParent():preprocess("{{Błąd|Wywołano szablon z argumentem pierwszym pustym.}}");
end;
else
local twor_spisu_tresci="[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(((dodatek)and(dodatek~="")) and (" "..dodatek) or "");
twor_spisu_tresci=mw.ustring.rep("=",6)..twor_spisu_tresci..mw.ustring.rep("=",6).."\n";
local stronicowyparser_dalszefunkcje_modul=require("Module:StronicowyParser/DalszeFunkcje");
local ulozenia_w_menu_spisu_tresci=stronicowyparser_dalszefunkcje_modul:SpisTresciWstep(tekst_artykulu, pelna_nazwa_strony);
local atrybuty="style=\"margin-left:20px\"";
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local toc=stronicowyparser_potrzebne_modul.TOCSilnik(ulozenia_w_menu_spisu_tresci, atrybuty);
local limit=args["limit"];
local czy_limit=parametry_modul.CzyTak(limit);
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;
function IteratorFunkcja()
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tabela_wypowiedzi=obiekty_modul.tablica_obiektow;
local licznik=1;
return function()
local tabela_obiektu=tabela_wypowiedzi[licznik];
if(not tabela_obiektu)then return nil;end;
local wartosc1=mw.ustring.gsub(tabela_obiektu[1],"%d+$","");
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_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_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_ksiazkowych;
return "";
end;
function p.formatowanie()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
return tabela_listy_danych_analizy_ksiazki.formatowanie;
end;
function p.WstawKategorie(frame)
local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie");
return stronicowyparser_kategorie_modul.WstawKategorie(frame);
end;
function p.CzyStronaSubst(frame,pelnanazwastrony,czy_wymusic)
if(czy_wymusic)then
local nazwy_modul=require("Module:Nazwy");
local pelnanazwastronyaktualnej=nazwy_modul["PEŁNANAZWASTRONY"]();
if(pelnanazwastrony~=pelnanazwastronyaktualnej)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(nil,pelnanazwastrony,TakFun,NieFun,nil);
end;
end;
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
return "tak";
end;
return "";
end;
return p;
3hhie5l13j9dijplpy3sat3hu1qef83
437985
437984
2022-08-17T17:17:16Z
Persino
2851
Scribunto
text/plain
local p = {}
function p.SpreparowanyWikikodStrony(nazwa_modolu,dokumentacja)
local stronicowyparser_dalszefunkcje=require("Module:StronicowyParser/DalszeFunkcje")
return stronicowyparser_dalszefunkcje.SpreparowanyWikikodStrony(nil,nazwa_modolu,dokumentacja);
end;
function p.PrzekierowanieDoStrony(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_modulu=PobierzParametr(1);
local latki_modul=require("Module:Łatki");
return latki_modul.contentMatch{args={
[1]="^%s*#REDIRECT%s+%[%[(.+)%]%]%s*",
[2]="^%s*#PATRZ%s+%[%[(.+)%]%]%s*",
[3]="^%s*#TAM%s+%[%[(.+)%]%]%s*",
namespace="",
pagename=nazwa_modulu,
},
};
end;
p["TekstRozdziałuStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.TekstRozdzialuStrony(frame);
end;
p["KtóraSekcjaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.KtoraSekcjaStrony(frame);
end;
p["ZwróćSekcjęNagłówkaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.ZwrocSekcjeNaglowkaStrony(frame);
end;
p["NastępnyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(frame);
local numer=tonumber(args[1]) or 0;
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu_z_naglowkiem_match=mw.ustring.match(nazwa_artykulu,"^([^#]*)#.*$");
local nazwa_artykulu_z_opcja_naglowek=(not naglowek) and nazwa_artykulu_z_naglowkiem_match or nazwa_artykulu;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu,numer) or nil;
local i=0;
local tab_artykul={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
local artykul_w_bazie;local artykul_bez_naglowka_w_bazie;local artykul_z_naglowkiem_w_bazie;
local czy_table=parametry_modul.TypeTable(artykul_w_bazie_element[1]);
if(czy_table)then
artykul_w_bazie=artykul_w_bazie_element[1][1];
else
artykul_w_bazie=artykul_w_bazie_element[1];
end;
local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_w_bazie,"^([^#]*)#.*$");
artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_w_bazie;
if(naglowek or not tab_artykul[artykul_bez_naglowka_w_bazie])then
if(not naglowek)then
tab_artykul[artykul_bez_naglowka_w_bazie]=true;
end
if(not naglowek)then
artykul_z_naglowkiem_w_bazie=artykul_bez_naglowka_w_bazie;
else
artykul_z_naglowkiem_w_bazie=artykul_w_bazie;
end;
local numer_artykulu_w_bazie;
if(numer>0)then
numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul_bez_naglowka_w_bazie);
end;
local function Nastepny()
if(not nazwa)then
return artykul_z_naglowkiem_w_bazie;
end;
if(czy_table)then
return artykul_w_bazie[1][2];
else
return artykul_z_naglowkiem_w_bazie;
end;
end;
if(i==1)then
if(numer>0)then
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(artykul_bez_naglowka,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
return Nastepny();
end;
else
return Nastepny();
end;
else
if((not naglowek)and(artykul_bez_naglowka_w_bazie==nazwa_artykulu_z_opcja_naglowek)
or(((naglowek) and ((nazwa_artykulu_z_naglowkiem_match and artykul_z_naglowkiem_w_bazie_match)or(not nazwa_artykulu_z_naglowkiem_match and not artykul_z_naglowkiem_w_bazie_match)))
and (artykul_z_naglowkiem_w_bazie==nazwa_artykulu)
))then
i=1;
end;
end;
end;
end;
end;
end;
if(i==1)then
return "";
end;
return "(błąd)";
end;
p["PoprzedniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(frame);
local numer=tonumber(args[1]) or 0;
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu_z_naglowkiem_match=mw.ustring.match(nazwa_artykulu,"^([^#]*)#.*$")
local nazwa_artykulu_z_opcja_naglowek=(not naglowek) and nazwa_artykulu_z_naglowkiem_match or nazwa_artykulu;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu,numer) or nil;
local artykul;
local tab_artykul={};
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 artykul_z_naglowkiem_w_bazie;local artykul_bez_naglowka_w_bazie;
local czy_table=parametry_modul.TypeTable(artykul_w_bazie[1]);
if(czy_table)then
artykul_z_naglowkiem_w_bazie=artykul_w_bazie[1][1];
else
artykul_z_naglowkiem_w_bazie=artykul_w_bazie[1];
end;
local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_z_naglowkiem_w_bazie,"^([^#]*)#.*$")
artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_z_naglowkiem_w_bazie;
if(naglowek or not tab_artykul[artykul_bez_naglowka_w_bazie])then
if(not naglowek)then
tab_artykul[artykul_bez_naglowka_w_bazie]=true;
end;
if((not naglowek)and(artykul_bez_naglowka_w_bazie==nazwa_artykulu_z_opcja_naglowek)
or(((naglowek) and ((nazwa_artykulu_z_naglowkiem_match and artykul_z_naglowkiem_w_bazie_match)or(not nazwa_artykulu_z_naglowkiem_match and not artykul_z_naglowkiem_w_bazie_match)))and(artykul_z_naglowkiem_w_bazie==nazwa_artykulu)))then
if(not artykul)then return "";end;
local czy_table_artykul=parametry_modul.TypeTable(artykul);
if(czy_table_artykul)then
if(not nazwa)then
if(naglowek)then
return artykul[1];
end;
artykul,_=mw.ustring.gsub(artykul[1],"^([^#]+)#(.*)$","%1");
return artykul;
else
return artykul[2];
end;
else
if(naglowek)then
return artykul;
end;
artykul,_=mw.ustring.gsub(artykul,"^([^#]+)#(.*)$","%1");
return artykul;
end;
end
if(numer>0)then
local numer_artykulu_poprzedni=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(artykul_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_poprzedni)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
artykul=artykul_w_bazie[1];
end;
else
artykul=artykul_w_bazie[1];
end;
end;
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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu);
end;
p["PierwszyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 naglowek=parametry_modul.CzyTak(args["nagłówek"]);
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
if(not nazwa)then
local artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][1] or artykul_w_bazie[1];
return (not naglowek) and mw.ustring.gsub(artykul,"^([^#]*)#(.*)$","%1") or artykul;
else
return parametry_modul.TypeTable(artykul_w_bazie[1])
and artykul_w_bazie[1][2]
or ((not naglowek) and mw.ustring.gsub(artykul_w_bazie[1],"^([^#]*)#(.*)$","%1") or artykul_w_bazie[1]);
end;
end;
end;
end;
end;
p["OstatniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ostatni_artykul;
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
if(not nazwa)then
ostatni_artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][1] or artykul_w_bazie[1];
else
ostatni_artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][2] or artykul_w_bazie[1];
end;
end;
end;
end;
if(ostatni_artykul)then
return (not naglowek) and mw.ustring.gsub(ostatni_artykul,"^([^#]*)#(.*)$","%1") or ostatni_artykul;
end;
return "(błąd)";
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 element=stronicowyparser_potrzebne_modul:PomiedzyArtykul(frame) or nil;
if(not element)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_table=parametry_modul.TypeTable(element);
local element=czy_table and element[1] or element;
if(not nazwa)then return (not naglowek) and mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;end;
return czy_table and element[2] or ((not naglowek) and mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element);
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 element=stronicowyparser_potrzebne_modul:LosowyArtykul(frame);
if(not element)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_table=parametry_modul.TypeTable(element);
local element=czy_table and element[1] or element;
if(not nazwa)then return mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;end;
return czy_table and element[2] or mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;
end;
local function PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,typ)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local ktory=(tonumber(args["który"]) or 1);
local parametr_pierwszy_szablonu=typ and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or args[1];
if(not typ)then
parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"^[%s_]+","");
parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"[%s_]+$","");
parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"[%s_]+"," ");
end;
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumer_2=nil;
local tab_numer_2=nil;
local tab_numer={};
local i=(not poziomowo) and 0 or nil;
local i_2=nil;
local juz_nie_rozwazaj_spisu_tresci=nil;
local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local poziom_spisu_tresci=nil;
local pierwszy_dodatni_spis_tresci=nil;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local poziom_rozdzialu=tab_lista[1][2][1] or 0;
if(poziom_rozdzialu>0)then
local czy_nie_ten_rozdzial=nil;
local czy_jest_teraz_spis_tresci=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];local czy_nie_ten_rozdzial;
if((not juz_nie_rozwazaj_spisu_tresci)and(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(czy_jest_teraz_spis_tresci))then
poziom_spisu_tresci=poziom_rozdzialu;
juz_nie_rozwazaj_rozdzialu_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
elseif((not juz_nie_rozwazaj_spisu_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then
if((poziom_spisu_tresci<poziom_rozdzialu))then
czy_nie_ten_rozdzial=false;
else
juz_nie_rozwazaj_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
else
local juz_nie_rozwazaj_spisu_tresci=nil;
local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
local hnumer=HNumer(poziom_rozdzialu);
if(#tab_numer<hnumer)then
for i=#tab_numer+1,hnumer,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>hnumer)then
for i=#tab_numer, hnumer+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=tab_numer[#tab_numer]+1;
else
tab_numer[#tab_numer]=tab_numer[#tab_numer]+1;
end;
----
local wartosc=__FUNKCJA(poziomowo,i,tab_numer,ktory,parametr_pierwszy_szablonu,rozdzial);
----
if(wartosc)then return wartosc;end;
----
if((czy_jest_teraz_spis_tresci)and(not pierwszy_dodatni_spis_tresci))then
HNumer_2=HNumer;
HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_2=tab_numer;
tab_numer={};
pierwszy_dodatni_spis_tresci=true;
elseif((pierwszy_dodatni_spis_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu))then
HNumer=HNumer_2;
HNumer_2=nil;
tab_numer=tab_numer_2;
tab_numer_2=nil;
pierwszy_dodatni_spis_tresci=false;
end;
else
i=i+1;
----
local wartosc=__FUNKCJA(poziomowo,i,tab_numer,ktory,parametr_pierwszy_szablonu,rozdzial);
---
if(wartosc)then return wartosc;end;
---
if((czy_jest_teraz_spis_tresci)and(not pierwszy_dodatni_spis_tresci))then
i_2=i;
i=0;
pierwszy_dodatni_spis_tresci=true;
elseif((pierwszy_dodatni_spis_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu))then
i=i_2;
i_2=nil;
pierwszy_dodatni_spis_tresci=false;
end;
end;
end;
end;
end;
end;
p["PobierzNumerNagłówka"]=function(frame)
local s=1;
local function __FUNKCJA(poziomowo,i,tab_numer,ktory,naglowek,rozdzial)
if(naglowek==rozdzial)then
if(s==ktory)then
if(poziomowo)then
if(#tab_numer==0)then return;end;
return table.concat(tab_numer,".");
else
return i;
end;
end;
s=s+1;
end;
end;
return PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,false);
end;
p["PobierzNazwęNagłówka"]=function(frame)
local s=1;
local function __FUNKCJA(poziomowo,i,tab_numer,ktory,numer,rozdzial)
if(poziomowo)then
if(#tab_numer==0)then return;end;
if(numer==table.concat(tab_numer,"."))then
if(s==ktory)then
return rozdzial;
else
s=s+1;
end;
end;
elseif(numer==i)then
if(s==ktory)then
return rozdzial;
else
s=s+1;
end;
end
end;
return PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,true);
end;
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame,tabela_listy_danych_analizy_ksiazki);
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 naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
local pierwszy_parametr_szablonu=args[1] and (typ and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1])
or ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaStronyAdresu"](html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](args[1])),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaStronyAdresu"](html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](args[1])))
)
or (typ and 1 or "Przykładowy artykuł");
local ktory=(tonumber(args["ktory"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
--local HNumer=poziomowo and stronicowyparser_potrzebne_modul.LiczonyHNumer() or nil;
local HNumerPoziomow_4=nil--poziomowo and stronicowyparser_potrzebne_modul.LiczonyHNumer() or nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
--local HNumerPoziomowInnychNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local tab_numer=poziomowo and {} or nil;
tab_numer_1=nil;
tab_numer_3=nil
tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local czy_poziom_spisu_tresci=nil;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local juz_nie_rozwazaj_spisu_tresci=nil;
local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_spisu_tresci_naglowka=0;
local numer_poziomu=nil;
local ostatni_rozdzial_dodatni=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local prawdziwy_poziom_rozdzialu=nil;
local artykuly_w_rozdziale=nil;
local spis_tresci_zerowy;
local poziom_zerowy;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
function TabLista(tab_lista)
function Iterator(tab_lista)
local p1=0;local p2=0;
local s=0;
return function()
s=s+1;
if((tab_lista[3])and(tab_lista[3][p1+1])and(tab_lista[3][p1+1][5]==p2))then
p1=p1+1;
return s,tab_lista[3][p1];
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local tab_poprzedni_artykul_w_bazie=nil;
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local poziom_naglowka=nil;
if(poziomowo)then
local czy_nienilowy_rozdzial=tab_lista[1][2][1];
czy_pierwszy_nilowy=(m==1)and (czy_nienilowy_rozdzial==nil) or czy_pierwszy_nilowy;
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
--if(m>1)then
rozdzial=tab_lista[1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
--end;
tab_poziomowo={};
--[[local czy_jest_teraz_spis_tresci=((m>1)and(not spis_tresci_zerowy or not poziom_zerowy)or((m==1)and(spis_tresci_zerowy)))
and ((m==1) and true or tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])]]
local czy_jest_teraz_spis_tresci=(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)
and((m==1)and (czy_nienilowy_rozdzial and tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial] or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial]
or false));
if((m>1)and(czy_pierwszy_nilowy))then
czy_jest_teraz_spis_tresci=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
if(czy_jest_teraz_spis_tresci)then
juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil;
juz_nie_rozwazaj_spisu_tresci=nil;
czy_pierwszy_nilowy=nil;
pierwszy_ujemny_spis_tresci=nil;
end;
end;
local czy_nie_ten_rozdzial;
if((not juz_nie_rozwazaj_spisu_tresci)and(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(czy_jest_teraz_spis_tresci))then
poziom_spisu_tresci=poziom_rozdzialu;
juz_nie_rozwazaj_rozdzialu_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
elseif((not juz_nie_rozwazaj_spisu_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then
if((poziom_spisu_tresci<poziom_rozdzialu))then
czy_nie_ten_rozdzial=false;
else
juz_nie_rozwazaj_spisu_tresci=true;
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
else
czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial];
end;
--if(not czy_nie_ten_rozdzial)then
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
artykuly_w_rozdziale=nil;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu;
poziom_pierwszego_ujemnego_spisu_tresci=nil;
poprzedni_tab_poziomowo=nil;
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
end;
if(pierwszy_ujemny_spis_tresci)then
HNumerPoziomow=HNumerPoziomow_2;
HNumerPoziomow_2=nil;
tab_numer=tab_numer_2;
tab_numer_2=nil;
pierwszy_ujemny_spis_tresci=nil;
czy_poziom_ujemny_spisu_tresci=nil;
end;
if(not glowny_dodatni_rozdzial)then
if((juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(not juz_nie_rozwazaj_spisu_tresci)and(not czy_jest_teraz_spis_tresci)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
spis_tresci=true;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu);
end;
end;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
glowny_dodatni_rozdzial=false;
end;
ostatni_rozdzial_dodatni=poziom_rozdzialu;
elseif(poziom_znakowy_rozdzialu<0)then
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(ostatni_poczatek_artykulu~=poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
end;
else
if((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(ostatni_poczatek_artykulu==poziom_poczatku_rozdzialu)
)then pierwszy_rowny_rozdzial=0;end;
poziom_rozdzialu=poziom_rozdzialu+pierwszy_rowny_rozdzial;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
end;
if(not glowny_ujemny_rozdzial)then
--if((juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(not juz_nie_rozwazaj_spisu_tresci)and(not spis_tresci))then
-- numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1);
-- spis_tresci=true;
--else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka);
--end;
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,numer_rozdzialu_dodatniego+1);
end;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,(HNumerPoziomowNaglowkow(0) or 0)+1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and((not czy_pierwszy_nilowy)or(not czy_jest_teraz_spis_tresci))))then
poziom_zerowego_naglowka=1;
numer_rozdzialu=HNumerPoziomow( 1 + (ostatni_rozdzial_dodatni or 0) + 0);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
poziom_naglowka= 1 + (ostatni_rozdzial_dodatni or 0) + 0;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_dodatni or 0) + 0;
end;
end;
local numer;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_znakowy_rozdzialu);
--HNumerPoziomowInnychNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
elseif(poziom_znakowy_rozdzialu<0)then
--local numer=HNumerPoziomowInnychNaglowkow(-poziom_znakowy_rozdzialu);
end;
if((m>1)
and(tab_lista_artykulow_w_ksiazce[m-1])
and(tab_lista_artykulow_w_ksiazce[m-1][2])
and(#tab_lista_artykulow_w_ksiazce[m-1][2]>0)
and(tab_lista_artykulow_w_ksiazce[m-1][2][#tab_lista_artykulow_w_ksiazce[m-1][2]][2][1]==0)
)then
local lens_tab_numer=#tab_numer;
local roznica=math.min(#(poprzedni_tab_poziomowo or {})+#tab_numer,numer_rozdzialu)-#tab_numer;
roznica=((roznica>0) and roznica or 0);
for i=1,roznica,1 do
tab_numer[i+lens_tab_numer]=poprzedni_tab_poziomowo[i];
end;
end;
if((czy_jest_teraz_spis_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then
if(poziom_znakowy_rozdzialu>0)then
poziom_spisu_tresci_naglowka=poziom_rozdzialu;
else
poziom_pierwszego_ujemnego_spisu_tresci=poziom_rozdzialu;
end;
end;
if(poziom_rozdzialu>0)then
if((((czy_poziom_dodatni_spisu_tresci)and(poziom_znakowy_rozdzialu>0))or((czy_poziom_ujemny_spisu_tresci)and(poziom_znakowy_rozdzialu<0)))
and(poziom_spisu_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu)
)then
if(poziom_znakowy_rozdzialu>0)then
tab_numer=tab_numer_1;
tab_poziomowo={};
poziom_spisu_tresci=nil;
HNumerPoziomow=HNumerPoziomow_1;
HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_1;
czy_poziom_dodatni_spisu_tresci=false;
elseif(poziom_znakowy_rozdzialu<0)then
tab_numer=tab_numer_2;
tab_poziomowo={};
poziom_spisu_tresci=nil;
HNumerPoziomow=HNumerPoziomow_2;
--HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_2;
czy_poziom_ujemny_spisu_tresci=false;
pierwszy_ujemny_spis_tresci=nil;
end;
end;
local hnumer=numer_rozdzialu;
if(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,hnumer-#tab_numer);
local len_tab_numer=#tab_numer;
for i=1,lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<hnumer)then
for i=#tab_numer+1,hnumer,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>hnumer)then
for i=#tab_numer, hnumer+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
else
--[[if(poziom_rozdzialu==0)then
if(tab_lista_artykulow_w_ksiazce[m+1])then
if(tab_lista_artykulow_w_ksiazce[m+1][1][2]>0)then
tab_numer={0,};
elseif(tab_lista_artykulow_w_ksiazce[m+1][1][2]<0)then
tab_numer={};
end;
else
tab_numer={};
end;
end;]]
end;
--end;
if((czy_jest_teraz_spis_tresci)and(((not pierwszy_dodatni_spis_tresci)and(poziom_znakowy_rozdzialu>0))or((not pierwszy_ujemny_spis_tresci)and(poziom_znakowy_rozdzialu<0))))then
function Poziom_dodatni()
for s,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(s>m)then
if((tab_lista[1][2][1] or 0)>0)then
if(math.abs(tab_lista[1][2][1] or 0)>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return false;
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
return true;
end;
end;
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
local poziom_artykulu=artykul_w_bazie[2][1];
if(prawdziwy_poziom_rozdzialu~=0)then
if(poziom_artykulu>poziom_rozdzialu)then
return true;
end;
else
return true;
end;
end;
end;
return false;
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni())))then
tab_poziomowo_1=tab_poziomowo;
tab_poziomowo={};
czy_poziom_dodatni_spisu_tresci=true;
HNumerPoziomow_1=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow_1=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_1=tab_numer;
tab_numer={};
pierwszy_dodatni_spis_tresci=true;
elseif((poziom_znakowy_rozdzialu<0)
and((czy_inaczej_numeruj_rozdzial_ujemny())or((tab_lista_artykulow_w_ksiazce[m+1])
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu))))then
tab_poziomowo_2=tab_poziomowo;
tab_poziomowo={};
czy_poziom_ujemny_spisu_tresci=true;
HNumerPoziomow_2=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
--HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
--HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_2=tab_numer;
tab_numer={};
pierwszy_ujemny_spis_tresci=true;
end;
end;
local function OTakimSamymLubMniejszymPoziomie(m)
if(poziom_rozdzialu==0)then return true;end;
local lens=parametry_modul["LiczbaElementówNumerowanychTablicy"](tab_lista_artykulow_w_ksiazce);
if(m==lens)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
for k=m+1,lens,1 do
if(tab_lista_artykulow_w_ksiazce[k])then
if((tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)<=poziom_rozdzialu)then
return true;
end;
end;
end;
end;
elseif(((m==1)or((tab_lista_artykulow_w_ksiazce[m-1])and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)))and(poziom_znakowy_rozdzialu<0))then
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu<=-prawdziwy_poziom_rozdzialu)then
return true;
end;
end;
end;
local poziom_zerowego_naglowka_innego=0;
for k=m+1,lens,1 do
if(tab_lista_artykulow_w_ksiazce[k])then
if((tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0;
if(ile==0)then
if((czy_jest_teraz_spis_tresci)and(m==1))then
poziom_zerowego_naglowka_innego=poziom_zerowego_naglowka;
else
poziom_zerowego_naglowka_innego=1;
end;
end;
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1] or 0)+poziom_zerowego_naglowka_innego<=poziom_rozdzialu)then
return true;
end;
else
break;
end;
end;
end;
else
return true;
end;
end;
-- if(not czy_nie_ten_rozdzial)then
if((tab_lista[2])
and(tab_lista[2][1])
and(tab_lista[2][1][2][1]==0)
and(not tab_lista[2][1][4])
and(tab_lista_artykulow_w_ksiazce[m+1])
and(((poziom_znakowy_rozdzialu>0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)~=0)
))
)then
if(m==1)then
tab_numer={0,}
else
table.insert(tab_numer,0);
end;
elseif((m==1)and(not tab_lista_artykulow_w_ksiazce[m+1]))then
tab_numer={};
elseif((poziomowo)and(m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)==0))then
if(poprzedni_tab_poziomowo)then
local min=math.min(math.abs(numer_rozdzialu),#poprzedni_tab_poziomowo);
for i=#poprzedni_tab_poziomowo,min+1,-1 do
table.remove(poprzedni_tab_poziomowo,i)
end;
tab_numer=poprzedni_tab_poziomowo;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
elseif((not czy_jest_teraz_spis_tresci)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))or((not pierwszy_ujemny_naglowek)and(poziom_znakowy_rozdzialu<0))))then
if(poziom_rozdzialu>0)then
if(not OTakimSamymLubMniejszymPoziomie(m))then
if(poziom_znakowy_rozdzialu>0)then
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_3=tab_numer;
tab_numer={0,};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poziom_naglowka or 0>0)then
HNumerPoziomow(poziom_naglowka,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(poziom_znakowy_rozdzialu>0)then pierwszy_dodatni_naglowek=true;else pierwszy_ujemny_naglowek=true;end;
end;
end;
elseif((czy_jest_teraz_spis_tresci)and(not czy_nie_ten_rozdzial))then
if((not spis)and(poziom_rozdzialu>0)
and(tab_lista_artykulow_w_ksiazce[m+1])
and((
(poziom_znakowy_rozdzialu>0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
))
)then
tab_numer={0,};
spis=true;
end
elseif((tab_lista_artykulow_w_ksiazce[m+1])
and((
(poziom_znakowy_rozdzialu>0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and((tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1] or 0)>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2] or tab_lista[3])then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_tytul_rozdzial=nil;local poprzedni_b=nil;local ile_odjac=0;
local HNumerB=nil;
local poprzedni_poziom_artykulu=nil;
local czy_ma_elementy=nil;
local poziom_poprzedni_artykulu=nil;
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=artykul_w_bazie[1][1] or artykul_w_bazie[1];
artykul=(not naglowek)and mw.ustring.gsub(artykul,"^([^#]*)#(.*)$","%1") or artykul;
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
local w_rozdziale=artykul_w_bazie[2][4];
if(w_rozdziale)then
function CzyRozdzialMaArtykulyNieWewnetrzne()
for s,artykul_w_bazie in ipairs(tab_lista[2])do
if(s>p)then
if((tab_lista[2][s])and(not tab_lista[2][s][2][4]))then
return true;
end;
end;
end;
return false;
end;
function CzyRozdzialMaRozdzialyNieWewnetrzne()
for s,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(s>m)then
local poziom_rozdzialu=tab_lista[1][2][1] or 0;
if(poziom_rozdzialu<0)then
return true;
end;
end;
end;
return false;
end;
if((not artykuly_w_rozdziale)and((CzyRozdzialMaArtykulyNieWewnetrzne())or(CzyRozdzialMaRozdzialyNieWewnetrzne())))then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
else
if(not tab_lista[2][p+1])then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
end;
elseif(artykuly_w_rozdziale)then
artykuly_w_rozdziale=nil;
table.remove(tab_numer,#tab_numer);
tab_poziomowo={};
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer=tonumber(poziom_artykulu) or 1;
if(numer<1)then numer=1;end;
return numer;
end;
poziom_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_czysty_artykulu=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
if((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(#poziom_poczatku_artykulu==#poziom_poczatku_rozdzialu)
and(poziom_poczatku_artykulu~=poziom_poczatku_rozdzialu)
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or (mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)then
poziom_artykulu=poziom_artykulu+1;
poziom_czysty_artykulu=poziom_czysty_artykulu+1;
end;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
if(p>1)then
local numer_poprzedni=tonumber(tab_lista[2][p-1][2][1]) or 1;
local id_poprzednie=tab_lista[2][p-1][4];
local numer=tonumber(tab_lista[2][p][2][1]) or 1;
local id=tab_lista[2][p][4];
if((numer_poprzedni==0)and(not id_poprzednie)and(not id)and(numer>0))then
if(#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
tab_poziomowo={};
end;
end;
end;
local prefix_poziom_artykulu=poziom_artykulu;
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if(tab_poprzedni_artykul_w_bazie)then
if(poprzedni_poziom_artykulu)then
if(poprzedni_poziom_artykulu==poziom_artykulu)then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_nazwy_artykulu=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_nazwy_artykulu)then
b=b+1;
end;
end;
else
b=0;
end;
end;
if(poziom_znakowy_rozdzialu<0)then
if(#tab_numer~=0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerArtykulu=HNumerPoziomow_4;
elseif((poziom_poprzedni_artykulu)and(poziom_artykulu>(poziom_pierwszego_ujemnego_naglowka or 0))and(poziom_poprzedni_artykulu>(poziom_pierwszego_ujemnego_spisu_tresci or 0))and(poziom_artykulu<=(poziom_pierwszego_ujemnego_spisu_tresci or 0)))then
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
for i=#tab_poziomowo,numer_poziomu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0 ) + 1;
tab_poziomowo=tab_numer;
tab_numer={};
elseif((poziom_naglowka>=poziom_artykulu)or((poziom_rozdzialu==poziom_czysty_artykulu)
and((numer_poziomu<numer_rozdzialu)
or((numer_poziomu==numer_rozdzialu)
and(poziom_poczatku_rozdzialu==poziom_poczatku_artykulu)
))
))then
local tab_numer2={};
for i=1,(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka,1 do
tab_numer2[i]=tab_numer[i];
end;
local tab_poziomowo2={};
for i=(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1,#tab_numer,1 do
tab_poziomowo2[i-(HNumerPoziomowNaglowkow(0) or 0)-poziom_zerowego_naglowka]=tab_numer[i];
end;
local indeks=(((HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1>#tab_numer) and 0 or (#tab_numer-(HNumerPoziomowNaglowkow(0) or 0)-poziom_zerowego_naglowka));
for i=1,numer_poziomu,1 do
tab_poziomowo2[i+indeks]=tab_poziomowo[i];
end;
tab_numer=tab_numer2;
tab_poziomowo=tab_poziomowo2;
--[[tab_poziomowo=tab_numer;
tab_numer={};]]
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
--local numer_poziomu=HNumerPoziomow(poziom_artykulu+(ostatni_rozdzial_dodatni or 0),#tab_poziomowo+1);
end;
end;
end;
elseif(#tab_numer>numer_poziomu)then
tab_poziomowo={};
tab_poziomowo[1]=tab_numer[numer_poziomu];
for i=#tab_numer,numer_poziomu,-1 do
table.remove(tab_numer,i);
end;
elseif((#tab_numer<=numer_rozdzialu)and(numer_rozdzialu>=numer_poziomu))then
local numer_rozdzialu_dodatniego=(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka;
if((numer_rozdzialu_dodatniego>0)or((numer_rozdzialu==numer_poziomu)and(poziom_poczatku_rozdzialu==poziom_poczatku_artykulu)))then
if(#tab_numer>=numer_rozdzialu_dodatniego)then
local tab_numer2={};
for i=1,numer_rozdzialu_dodatniego,1 do
tab_numer2[i]=tab_numer[i];
end;
tab_poziomowo={};
for i=numer_rozdzialu_dodatniego+1,#tab_numer,1 do
tab_poziomowo[i-numer_rozdzialu_dodatniego]=tab_numer[i];
end;
tab_numer=tab_numer2;
end;
end;
end;
poprzedni_poziom_artykulu=poziom_artykulu;
local czy_z_rozdzialem=(tab_artykul_w_bazie[1]==rozdzial);
if((p==1)and(czy_z_rozdzialem))then b=1;end;
czy_tytul_rozdzial=((p==1)and true or czy_tytul_rozdzial) and (czy_z_rozdzialem);
local dodatek=b-((czy_tytul_rozdzial)and 0 or 1);
dodatek=((dodatek>0)and dodatek or 0);
if((poziomowo)and(poziom_znakowy_rozdzialu<0))then
if(poziom_naglowka>=poziom_artykulu)then
local numer_poziomu=HNumerPoziomu(poziom_naglowka,numer_rozdzialu-(HNumerPoziomowNaglowkow(0) or 0));
end;
end;
local stala=poziom_artykulu;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poziom_poprzedni_artykulu=poziom_artykulu;
end;
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo);
if(poziomowo)then
if(tab_lista[2][p+1])then
local numer_nastepny=tonumber(tab_lista[2][p+1][2][1]) or 1;
local id_nastepny=tab_lista[2][p+1][4];
local numer=tonumber(tab_lista[2][p][2][1]) or 1;
local id=tab_lista[2][p][4];
if((numer_nastepny==0)and(not id_nastepny)and(not id)and(numer>0))then
tab_poziomowo={tab_numer[(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1],};
for i=#tab_numer,(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1,-1 do
table.remove(tab_numer,i);
end;
end;
end;
poprzedni_tab_poziomowo=tab_poziomowo;
end;
if(wartosc)then return wartosc;end;
if(not poziomowo)then
i=i+1;
end;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{}); end;
end;
else
poprzedni_tab_poziomowo=nil;
if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{}); end;
end;
end;
return;
end;
p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,numer,rozdzial,artykul,tab_numer,tab_poziomowo)
if((not poziomowo)and(i==numer))then
if(s==ktory)then
return artykul;
else
s=s+1;
end;
elseif(poziomowo)then
if((table.concat(tab_numer,".")
..((#tab_numer>0) and "." or "")
..table.concat(tab_poziomowo,"."))==numer)then
if(s==ktory)then
return artykul;
else
s=s+1;
end;
end;
end;
end;
return PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true);
end;
p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,nazwa_artykulu,rozdzial,artykul,tab_numer,tab_poziomowo)
if(nazwa_artykulu==artykul)then
if(s==ktory)then
if(poziomowo)then
return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,"."));
else
return i;
end;
end;
s=s+1;
end;
end;
return PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
end;
p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json)
local tab_dane_ksiazki=nil;
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,nazwa_artykulu,rozdzial,artykul,tab_numer,tab_poziomowo)
if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end;
if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end;
local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or "";
repeat
numer_rozdzialu=mw.ustring.gsub(numer_rozdzialu,"%.0$","")
until not mw.ustring.match(numer_rozdzialu,"%.0$");
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu]={};
end;
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul]={};
end;
local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or "";
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu]={};
end;
table.insert(tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu],s);
s=s+1;
return false;
end;
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;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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:NazwaArtykuluKsiazki(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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
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
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(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 nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
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:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
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 artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
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 techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(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 czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
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;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
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:PelnaNazwaKsiazki(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:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((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:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(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];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
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_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_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_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 techniczne_modul=require("Module:Techniczne");
local szablon=techniczne_modul.NazwaSzablonu(nazwa_strony);
return frame:expandTemplate{title=szablon,args={},};
end;
p["KsiążkaSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"];
return str;
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_ksiazkowych;
local tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"];
if(not tab_stronasubst)then return;end;
local pierwszy,_=mw.ustring.gsub(args[1],"[%s_]+"," ");
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 "")];
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:SG/"))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 p=frame.args["wyspecjalizowana"] and frame or frame:getParent();
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.PodajRozdzial(p.args[1]);
local id2,_=mw.ustring.gsub(naglowek,"^[%s_]","");
id2,_=mw.ustring.gsub(id2,"[%s_]$","");
id2,_=mw.ustring.gsub(id2,"[%s_]","_");
local id3,_=mw.ustring.gsub(mw.uri.encode(mw.text.encode(id2),"WIKI"),"(%%)",".");
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 "")
..">"..((id2~=id3) and ("<span id=\""..id3.."\"></span>") or "").."<span id=\""..id2.."\" class=\"mw-headline\">"..naglowek.."</span></h6>";
elseif(licznik<1)then
local blad_module=require("Module:Błąd");
local frame2=pf:newChild{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},}
blad_module.error(frame2);
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 "")
.." class=\""..((parametry_modul.CzyTak(klasa)) and klasa or "").."\""
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..((id2~=id3) and ("<span id=\""..id3.."\"></span>") or "").."<span id=\""..id2.."\" class=\"mw-headline\">"..naglowek.."</span></h"..licznik..">";
end;
end;
function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local ksiazkowe_modul=require("Module:Książkowe");
local args=(frame)and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"])and frame.args or frame:getParent().args) or {};
local nazwa_przestrzeni=args[2] and nazwy_modul["NAZWAPRZESTRZENI"](args[2]) or tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=args[2] and ksiazkowe_modul["NazwaKsiążki"](args[2]) or tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=args[1] and args[1] or tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
local czy_nie_aktualny=(
(nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)
or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)
or (nazwa_artykulu~=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)
);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu].TOC)) then
mw.log(tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza,"Strona ziorcza");
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu].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;
function p.WykazModolow(frame,czy_rozciagnij)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local lista_ksiazek_w_przestrzeni_nazw=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_ksiazek_w_przestrzeni_nazw)then return nil;end;
local tab_lista_artykulow_w_ksiazce_w_ksiazce=lista_ksiazek_w_przestrzeni_nazw[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce_w_ksiazce)then return nil;end;
local spis=tab_lista_artykulow_w_ksiazce_w_ksiazce.spis;
if(not spis)then return nil;end;
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 wysokosc=frame.args["wysokość"];
local wykaz_modolow_w_liscie="";
local i=1;
for _,tab_artykul in ipairs(spis)do
if(tab_artykul[2])then
for _,tab_pozycja in ipairs(tab_artykul[2])do
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_modolow_w_liscie=((wykaz_modolow_w_liscie~="") and (wykaz_modolow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni=="")and nazwa_ksiazki or nazwa_przestrzeni..":"..nazwa_ksiazki).."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..sformatowana_nazwa_artykulu..'</span>]]</li>';
else
wykaz_modolow_w_liscie=((wykaz_modolow_w_liscie~="") and (wykaz_modolow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni=="")and nazwa_ksiazki or nazwa_przestrzeni..":"..nazwa_ksiazki).."/") or "#")..sformatowana_nazwa_artykulu.."|"..sformatowana_nazwa_artykulu.."]]|"..i.."|100%}}";
end;
i=i+1;
end;
end;
end;
end;
if(wykaz_modolow_w_liscie=="")then return nil;end;
if(not spis_ksiazkowy)then
wykaz_modolow_w_liscie="<ul>"..wykaz_modolow_w_liscie.."</ul>";
wykaz_modolow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:400px;overflow:auto;">'..wykaz_modolow_w_liscie.."</div>";
wykaz_modolow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:14px;line-height:1.2em;background-color:white;|tytuł=<div style="font-size:14px;line-height:1.2em;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modolow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}';
else
wykaz_modolow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:10px;width:auto;box-sizing:border-box;background-color:white;\">"..wykaz_modolow_w_liscie.."</div>";
end;
local rozwiniety_wikikod=frame:preprocess(wykaz_modolow_w_liscie);
return rozwiniety_wikikod;
end;
function p.NazwaModolu()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np');
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(nazwa_artykulu==nil)then
return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]";
else
return nazwa_artykulu;
end;
end;
function p.Wstep_do_licencji(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;
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 oraz miejsca pochodzenia książki i jej jakikolwiek części, a także treści, teksty, tabele, wykresy, rysunki, wzory i inne elementy oraz ich części zawarte w książce, i tą książkę, nawet w postaci przerobionej nie można umieszczać w jakikolwiek formie na czasopismach naukowych, archiwach prac, itp.]<BR>';
end;
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_ksiazkowych;
local menu_z_licencja;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][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:3px;width:100%;height:auto;box-sizing:border-box;">'..p.Wstep_do_licencji(frame)..'</div>';
menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:14px;line-height:1.2em;background-color:white;|tytuł=<div style="font-size:14px;line-height:1.2em;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=StatycznaWikitabelowaListaMenu}}';
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_ksiazkowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].licencja;
if(tabela_listy_danych_analizy_ksiazki.licencja)then
return licencja[1];
end;
end;
function p.PierwszaStrona(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:5px;font-size:1.9em;line-height:25px;text-align:left;">'..p.NazwaModolu()..'</div><hr style=\"margin:5px 0\"/>';
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_ksiazkowych;
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.WykazModolow(frame,czy_rozciagnij);
if(wykaz_artykulow~=nil)then
prawe_menu=prawe_menu.."<hr style=\"margin:5px 0\"/>"..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 style=\"margin:5px 0\"/>"..spis_tresci;
end;
end;
local wysokosc=frame.args["wysokość"];
return "<div style=\"padding:10px;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:700px;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;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;
function p.SpisTresci(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa_artykulu=args["artykuł"] or args[1];
local nazwa_ksiazki=args["książka"] or args[2];
if(not parametry_modul.CzyTak(nazwa_ksiazki))then
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~=nil) and (uzyskana_nazwa_przestrzeni..":") 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_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_ksiazki=html_modul.TransformacjaKlasyZnakowej(nazwa_ksiazki);
local nazwa_artykulu=html_modul.TransformacjaKlasyZnakowej(nazwa_artykulu);
local nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local pelna_nazwa_strony=(nazwa_przestrzeni=="")and nazwa_strony or nazwa_przestrzeni..":"..nazwa_strony;
local tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony);
local nazwa=args["nazwa"] or args[3];
local nazwa_strony_artykulu=parametry_modul.CzyTak(nazwa) and nazwa or mw.ustring.gsub(mw.ustring.match(nazwa_artykulu,"[^/]*$"),"_"," ");
local dodatek=args["dodatek"] or args[4];
if(not tekst_artykulu)then
if(nazwa_artykulu~="")then
return "\n"..mw.ustring.rep("=",6).."<span style=\"color:red\">[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]</span>"..mw.ustring.rep("=",6).."\n";
else
return frame:getParent():preprocess("{{Błąd|Wywołano szablon z argumentem pierwszym pustym.}}");
end;
else
local twor_spisu_tresci="[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(((dodatek)and(dodatek~="")) and (" "..dodatek) or "");
twor_spisu_tresci=mw.ustring.rep("=",6)..twor_spisu_tresci..mw.ustring.rep("=",6).."\n";
local stronicowyparser_dalszefunkcje_modul=require("Module:StronicowyParser/DalszeFunkcje");
local ulozenia_w_menu_spisu_tresci=stronicowyparser_dalszefunkcje_modul:SpisTresciWstep(tekst_artykulu, pelna_nazwa_strony);
local atrybuty="style=\"margin-left:20px\"";
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local toc=stronicowyparser_potrzebne_modul.TOCSilnik(ulozenia_w_menu_spisu_tresci, atrybuty);
local limit=args["limit"];
local czy_limit=parametry_modul.CzyTak(limit);
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;
function IteratorFunkcja()
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tabela_wypowiedzi=obiekty_modul.tablica_obiektow;
local licznik=1;
return function()
local tabela_obiektu=tabela_wypowiedzi[licznik];
if(not tabela_obiektu)then return nil;end;
local wartosc1=mw.ustring.gsub(tabela_obiektu[1],"%d+$","");
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_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_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_ksiazkowych;
return "";
end;
function p.formatowanie()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych;
return tabela_listy_danych_analizy_ksiazki.formatowanie;
end;
function p.WstawKategorie(frame)
local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie");
return stronicowyparser_kategorie_modul.WstawKategorie(frame);
end;
function p.CzyStronaSubst(frame,pelnanazwastrony,czy_wymusic)
if(czy_wymusic)then
local nazwy_modul=require("Module:Nazwy");
local pelnanazwastronyaktualnej=nazwy_modul["PEŁNANAZWASTRONY"]();
if(pelnanazwastrony~=pelnanazwastronyaktualnej)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(nil,pelnanazwastrony,TakFun,NieFun,nil);
end;
end;
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
return "tak";
end;
return "";
end;
return p;
od8guxkcjzgt7vbjlnyuyvn45pn3gzw
Wikipedysta:Persino/brudnopis
2
44693
437982
437874
2022-08-17T14:43:33Z
Persino
2851
wikitext
text/x-wiki
{{#invoke:Linki|UzyskajKodWikiLinku|strona=|wyspecjalizowana=tak}}
{{Brudnopis/Persino/SzablonSubst|nazwa=Przetłumaczony|postęp=tak|kod języka{{=}}en|kod projektu{{=}}w|Statistical physics}}
==Spis treści==
* [[/Alfabet/]]
* [[/Głoski///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////]]
* [[/Przypadki/]]
{{Nowiki|{{PobierzNumerArtykułu|Głoski|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikipedysta:Persino/brudnopis/Głoski}}}}
----
{{#invoke:Łatki|są interwiki|nazwa=Wikipedia:Strona główna|kod projektu=w|kod języka=pl|wyspecjalizowana=tak}}
-----
==Spis treści==
** {{kompletność junior|2|17.03.2012}} [[Wikipedysta:Persino/brudnopis/Bałtowie|Bałtowie]] , {{kompletność junior|3|20.10.2020}} [[Wikipedysta:Persino/brudnopis/Celtowie|Celtowie]]
** {{kompletność junior|3|20.13.2112}} [[Wikipedysta:Persino/brudnopis/Bałtowie2|Bałtowie2]]
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Bałtowie}}}}
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Celtowie}}}}
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Bałtowie2}}}}
----
Następny: {{NastępnyArtykuł|1|nagłówek=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
Poprzedni: {{PoprzedniArtykuł|1|nagłówek=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
Następny: {{NastępnyArtykuł|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
Poprzedni: {{PoprzedniArtykuł|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
{{SubNazwaNadArtykułu|1|2|nazwa przestrzeni nazw=(main)|nazwa jednostki=Uciążliwość zapachowa/Węch człowieka/Receptory węchowe i kodowanie zapachu}}
{{LiczbaArtykułówKsiążki|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie}}
{{PobierzNazwęArtykułu|5|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie}}
{{PobierzNumerArtykułu|Widłakowate|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Widłakowate}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Poryblinowate}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Uciążliwość zapachowa/Węch człowieka/Receptory węchowe i kodowanie zapachu}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
{{#invoke:Linki|UzyskajKodWikiLinku|strona=|wyspecjalizowana=tak}}
{{PreNowiki|{{#invoke:StronicowyParser/Rozdziały|TekstRozdzialuStrony|Statystyka matematyczna/Średnie w matematyce statystycznej||Średnia arytmetyczna}}}}
{{PreNowiki|{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|Matematyka dla liceum|Funkcja wykładnicza i logarytmiczna}}}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Statystyka matematyczna/Średnie w matematyce statystycznej}}
{{PreNowiki|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Autorzy|analiza=tak|wyspecjalizowana=tak}}}}
{{PreNowiki|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja|analiza=tak|wyspecjalizowana=tak}}}}
=='''tytan'''==
[[wikibooks:Strona główna]]
{{PobierzNumerArtykułu|Zaczynamy/Zbiory|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
{{PobierzNazwęArtykułu|2.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Zaczynamy/Rozwiązywanie równań i nierówności|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
{{PobierzNazwęArtykułu|2.3|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Logika/Zdanie|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
{{PobierzNazwęArtykułu|3.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Postulaty szczególnej teorii względności i rodzaje układów|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Szczególna teoria względności/Postulaty szczególnej teorii względności i rodzaje układów}}
{{PobierzNazwęArtykułu|1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Szczególna teoria względności/Postulaty szczególnej teorii względności i rodzaje układów}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
{{PobierzNazwęArtykułu|2.2|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
----
{{PobierzNumerArtykułu|Ewolucja człowiekowatych w miocenie i pliocenie|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|1.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Mezopotamia - wstęp|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|2.1.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Źródła historyczne|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|0.2|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Władcy Izraela|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|2.3.1.1|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Majowie|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|2.9.3.2|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerNagłówka|Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Celtowie|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Celtowie}}
{{PobierzNazwęArtykułu|0.2|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Celtowie}}
{{PobierzNumerArtykułu|Schemat|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Celtowie}}
----
{{PobierzNumerArtykułu|Cyrkiel i linijka|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Matematyka/Cyrkiel i linijka}}
----
{{PobierzNumerArtykułu|Jak się uczyć, by się nauczyć?|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Angielski/Jak się uczyć, by się nauczyć?}}
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Bałtowie}}}}
----
{{LinkURL|strona=/w/index.php?title=Angielski/Jak_si%C4%99_uczy%C4%87,_by_si%C4%99_nauczy%C4%87%3F&action=edit&section=1|nazwa=tutan}}
{{LinkURL|strona=https://upload.wikimedia.org/wikibooks/pl/a/a0/2004zad28rys1.gif|nazwa=Pomoc dla użytkowników angielskiej Wikipedii}}
----
{{PobierzNumerArtykułu|Macierze|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Algebra liniowa/Macierze}}
----a
{{PobierzNumerArtykułu|O podręczniku|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=C++/O podręczniku}}
----a
{{PobierzNumerArtykułu|Anioł pasterzom mówił|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Śpiewnik/Anioł pasterzom mówił}}
----Chemia organiczna
{{PobierzNumerArtykułu|Koordynacja|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----a
{{PobierzNumerArtykułu|Węglowodory|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----
{{PobierzNumerArtykułu|Aneks|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----
{{PobierzNumerArtykułu|Słownik pojęć|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----
{{PobierzNumerArtykułu|Egipcjanie|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Ludzie paleolitu}}
----
{{PobierzNumerArtykułu|Bibliografia|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Bibliografia}}
----
{{PobierzNumerArtykułu|Rachunek różniczkowy|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza matematyczna/Rachunek różniczkowy}}
----
: {{s|PobierzNumerNagłówka|Starożytny Rzym|który{{=}}1}} → {{PobierzNumerNagłówka|Starożytny Rzym|który=1|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Źródła historyczne}}.
* Z wielopoziomową pozycją artykułu
: {{s|PobierzNumerNagłówka|Starożytny Rzym|poziomowo{{=}}tak|który{{=}}1}} → {{PobierzNumerNagłówka|Starożytny Rzym|poziomowo=tak|który=1|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Źródła historyczne}}.
{{LinkURL|strona=https://upload.wikimedia.org/wikipedia/commons/a/aa/Tetrahedron_grey.svg}}
----
{{PobierzNumerArtykułu|Wymowa|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fiński/Wymowa}}
----
<!--{{PobierzNumerArtykułu|Architektura|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie w systemie UNIX/Architektura}}
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Architektura|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie w systemie UNIX/Architektura|wyspecjalizowana=tak}}-->
-----
{{PobierzNumerArtykułu|Wstęp do grup nieprzemiennych|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Teoria grup przemiennych/Wstęp do grup nieprzemiennych}}
----
{{PobierzNumerArtykułu|Ruch po okręgu|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fizyka dla liceum/Ruch po okręgu}}
----
{{PobierzNumerArtykułu|Malowanie|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikijunior:Informatyka/Malowanie}}
----
{{PobierzNumerArtykułu|Biografie wynalazców|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Biografie wynalazców}}
k0idpcn8cayhha1gst0x8mjltuogvh5
Moduł:StronicowyParser/DalszeFunkcje
828
55009
437979
437740
2022-08-17T12:24:02Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
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 ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
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 tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local function SzablonyWywolywane(wywolanie)
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return wywolanie;
end;
naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywane);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";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,"_"," ");
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_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
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={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
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 function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))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<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
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 tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu;local nazwa;local link_szablon;local id;local parametry_szablonu;
if(wliczaj_artykuly_tego_rozdzialu)then
pozycja_artykulu,nazwa,czy_pozycja_artykulu,id,parametry_szablonu=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if(pozycja_artykulu)then
pozycja_artykulu=parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
pozycja_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pozycja_artykulu);
znaki_niedozwolone=mw.ustring.match(pozycja_artykulu,"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
end;
if(pozycja_artykulu)then
pozycja_artykulu=html_modul["PoprawAdresNagłówkaStronyAdresu"](pozycja_artykulu);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((pozycja_artykulu~="") and ("/"..pozycja_artykulu) or ""));
if(strona)then
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((nazwa) and ({pozycja_artykulu,nazwa,})or pozycja_artykulu),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif(czy_pozycja_artykulu)then
local wiki_modul=require("Module:Wiki");
local kod_jezyka=czy_pozycja_artykulu[3];
local kod_projektu=czy_pozycja_artykulu[4];
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((czy_pozycja_artykulu[1])and((czy_pozycja_artykulu[2])or(kod_jezyka)or(kod_projektu)))and{czy_pozycja_artykulu[1],czy_pozycja_artykulu[2],kod_jezyka,kod_projektu,} or czy_pozycja_artykulu[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][3] or {}),false,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if((not pozycja_artykulu)and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
nazwa_modolu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
return p.LadujZawartoscStrony(self,nazwa_modolu,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,true,szablony_magiczne,false,nil,true);
if(not tekst_artykulu_caly)then return;end;
local iterator=mw.ustring.gmatch(tekst_artykulu_caly,"{{[^{}]-}}");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for wywolanie in iterator do
local function AnalizujDokumentacja(_,wywolanie)
local nazwa_strony2;
local dokumentacja=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,false,szablony_magiczne,dokumentacja);
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,"{{%s*[Dd]okumentacja%s*}}",tekst_artykulu2);
else
local dopasowanie=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie)
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,false,szablony_magiczne,dokumentacja,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,tekst_artykulu2);
elseif(zawartosc)then
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
zawartosc=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](zawartosc);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,zawartosc);
end;
end;
end;
end;
local function __Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(not oznaczenie_szablonu)then return; end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local wywolanie2,_=mw.ustring.gsub(wywolanie,stronicowyparser_potrzebne_modul.OgolnyWzor(oznaczenie_szablonu),stronicowyparser_potrzebne_modul.AnalizaSzablonu(oznaczenie_szablonu));
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
wywolanie2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](wywolanie2);
tekst_artykulu_caly,_=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,wywolanie2);
end;
stronicowyparser_potrzebne_modul.AnalizaSzablonuStronicowegoParsera(wywolanie,AnalizujDokumentacja,__Funkcja2)
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
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;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if((czy_noinclude)and(not dokumentacja)and(szablon_nie_opis))then
local iterator=mw.ustring.gmatch(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->");
for dokumentacja_tekst in iterator do
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tekst=stronicowyparser_potrzebne_modul.KodujStroneSzablonowa(dokumentacja_tekst);
if(tekst~=dokumentacja_tekst)then
local techniczne_modul=require("Module:Techniczne");
dokumentacja_tekst=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](dokumentacja_tekst);
tekst=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->"..dokumentacja_tekst.."<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",tekst);
end;
end;
end;
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,"<!--(.-)-->","");
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->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
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;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul.KodujStroneSzablonowa(tekst_artykulu);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
hypx4xjki6tezjybn7togaeqhnb00zb
437980
437979
2022-08-17T12:31:01Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
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 ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
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 tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local function SzablonyWywolywane(wywolanie)
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return wywolanie;
end;
naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywane);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";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,"_"," ");
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_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
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={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
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 function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))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<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
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 tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu;local nazwa;local link_szablon;local id;local parametry_szablonu;
if(wliczaj_artykuly_tego_rozdzialu)then
pozycja_artykulu,nazwa,czy_pozycja_artykulu,id,parametry_szablonu=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if(pozycja_artykulu)then
pozycja_artykulu=parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
pozycja_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pozycja_artykulu);
znaki_niedozwolone=mw.ustring.match(pozycja_artykulu,"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
end;
if(pozycja_artykulu)then
pozycja_artykulu=html_modul["PoprawAdresNagłówkaStronyAdresu"](pozycja_artykulu);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((pozycja_artykulu~="") and ("/"..pozycja_artykulu) or ""));
if(strona)then
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((nazwa) and ({pozycja_artykulu,nazwa,})or pozycja_artykulu),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif(czy_pozycja_artykulu)then
local wiki_modul=require("Module:Wiki");
local kod_jezyka=czy_pozycja_artykulu[3];
local kod_projektu=czy_pozycja_artykulu[4];
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((czy_pozycja_artykulu[1])and((czy_pozycja_artykulu[2])or(kod_jezyka)or(kod_projektu)))and{czy_pozycja_artykulu[1],czy_pozycja_artykulu[2],kod_jezyka,kod_projektu,} or czy_pozycja_artykulu[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),false,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if((not pozycja_artykulu)and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
nazwa_modolu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
return p.LadujZawartoscStrony(self,nazwa_modolu,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,true,szablony_magiczne,false,nil,true);
if(not tekst_artykulu_caly)then return;end;
local iterator=mw.ustring.gmatch(tekst_artykulu_caly,"{{[^{}]-}}");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for wywolanie in iterator do
local function AnalizujDokumentacja(_,wywolanie)
local nazwa_strony2;
local dokumentacja=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,false,szablony_magiczne,dokumentacja);
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,"{{%s*[Dd]okumentacja%s*}}",tekst_artykulu2);
else
local dopasowanie=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie)
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,false,szablony_magiczne,dokumentacja,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,tekst_artykulu2);
elseif(zawartosc)then
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
zawartosc=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](zawartosc);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,zawartosc);
end;
end;
end;
end;
local function __Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(not oznaczenie_szablonu)then return; end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local wywolanie2,_=mw.ustring.gsub(wywolanie,stronicowyparser_potrzebne_modul.OgolnyWzor(oznaczenie_szablonu),stronicowyparser_potrzebne_modul.AnalizaSzablonu(oznaczenie_szablonu));
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
wywolanie2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](wywolanie2);
tekst_artykulu_caly,_=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,wywolanie2);
end;
stronicowyparser_potrzebne_modul.AnalizaSzablonuStronicowegoParsera(wywolanie,AnalizujDokumentacja,__Funkcja2)
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
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;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if((czy_noinclude)and(not dokumentacja)and(szablon_nie_opis))then
local iterator=mw.ustring.gmatch(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->");
for dokumentacja_tekst in iterator do
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tekst=stronicowyparser_potrzebne_modul.KodujStroneSzablonowa(dokumentacja_tekst);
if(tekst~=dokumentacja_tekst)then
local techniczne_modul=require("Module:Techniczne");
dokumentacja_tekst=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](dokumentacja_tekst);
tekst=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->"..dokumentacja_tekst.."<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",tekst);
end;
end;
end;
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,"<!--(.-)-->","");
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->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
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;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul.KodujStroneSzablonowa(tekst_artykulu);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
2mrvydycmxuw17wf15skqweb5wwl15h
437983
437980
2022-08-17T15:42:54Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
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 ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
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 tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local function SzablonyWywolywane(wywolanie)
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return wywolanie;
end;
naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywane);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";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,"_"," ");
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_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
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={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
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 function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))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<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
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 tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu;local nazwa;local link_szablon;local id;local parametry_szablonu;
if(wliczaj_artykuly_tego_rozdzialu)then
pozycja_artykulu,nazwa,czy_pozycja_artykulu,id,parametry_szablonu=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if(pozycja_artykulu)then
pozycja_artykulu=parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
pozycja_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pozycja_artykulu);
znaki_niedozwolone=mw.ustring.match(pozycja_artykulu,"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
end;
if(pozycja_artykulu)then
pozycja_artykulu=html_modul["PoprawAdresNagłówkaStronyAdresu"](pozycja_artykulu);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((pozycja_artykulu~="") and ("/"..pozycja_artykulu) or ""));
if(strona)then
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((nazwa) and ({pozycja_artykulu,nazwa,})or pozycja_artykulu),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif(czy_pozycja_artykulu)then
local wiki_modul=require("Module:Wiki");
local kod_jezyka=czy_pozycja_artykulu[3];
local kod_projektu=czy_pozycja_artykulu[4];
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((czy_pozycja_artykulu[1])and((czy_pozycja_artykulu[2])or(kod_jezyka)or(kod_projektu)))and{czy_pozycja_artykulu[1],czy_pozycja_artykulu[2],kod_jezyka,kod_projektu,} or czy_pozycja_artykulu[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if((not pozycja_artykulu)and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
nazwa_modolu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
return p.LadujZawartoscStrony(self,nazwa_modolu,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,true,szablony_magiczne,false,nil,true);
if(not tekst_artykulu_caly)then return;end;
local iterator=mw.ustring.gmatch(tekst_artykulu_caly,"{{[^{}]-}}");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for wywolanie in iterator do
local function AnalizujDokumentacja(_,wywolanie)
local nazwa_strony2;
local dokumentacja=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,false,szablony_magiczne,dokumentacja);
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,"{{%s*[Dd]okumentacja%s*}}",tekst_artykulu2);
else
local dopasowanie=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie)
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,false,szablony_magiczne,dokumentacja,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,tekst_artykulu2);
elseif(zawartosc)then
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
zawartosc=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](zawartosc);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,zawartosc);
end;
end;
end;
end;
local function __Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(not oznaczenie_szablonu)then return; end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local wywolanie2,_=mw.ustring.gsub(wywolanie,stronicowyparser_potrzebne_modul.OgolnyWzor(oznaczenie_szablonu),stronicowyparser_potrzebne_modul.AnalizaSzablonu(oznaczenie_szablonu));
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
wywolanie2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](wywolanie2);
tekst_artykulu_caly,_=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,wywolanie2);
end;
stronicowyparser_potrzebne_modul.AnalizaSzablonuStronicowegoParsera(wywolanie,AnalizujDokumentacja,__Funkcja2)
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
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;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if((czy_noinclude)and(not dokumentacja)and(szablon_nie_opis))then
local iterator=mw.ustring.gmatch(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->");
for dokumentacja_tekst in iterator do
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tekst=stronicowyparser_potrzebne_modul.KodujStroneSzablonowa(dokumentacja_tekst);
if(tekst~=dokumentacja_tekst)then
local techniczne_modul=require("Module:Techniczne");
dokumentacja_tekst=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](dokumentacja_tekst);
tekst=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->"..dokumentacja_tekst.."<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",tekst);
end;
end;
end;
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,"<!--(.-)-->","");
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->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
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;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul.KodujStroneSzablonowa(tekst_artykulu);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
drnjymaks2oc2shvl7wdr8b7bdccato
Moduł:StronicowyParser/Potrzebne
828
58155
437978
437858
2022-08-17T12:16:53Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
self.numer_szablonu=self.numer_szablonu+1;
return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
local function LewyPrawyRownoscPionowa()
local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local zamykanie={
[lewy]="{{",
[prawy]="}}",
[rownosc]="=",
[pionowa]="|",
};
return zamykanie;
end;
return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorRownosc(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorPionowa(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
if(not numer_szablonu)then
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
end;
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
end;
function p.MinMaxSzablon(zmienna)
local numer_szablonu=1;
local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
local __min=nil;
local __max=0;
for numer_zamykania in iterator do
numer_zamykania=tonumber(numer_zamykania) or 0;
if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
__max=math.max(numer_zamykania,__max);
end;
return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
p:ZamieniajSzablonyStart();
local function ZamieniajSzablony(szablon1,szablon2,szablon3)
return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
end;
while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
end;
return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
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==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;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.ParametryPudelkaKsiazki(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
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
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 artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
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={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
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 mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;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 style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tab_wywolania={};
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
local __min,__max=p.MinMaxSzablon(wartosc);
if((__min~=nil)and(__max~=0)and(__max>=__min))then
for ss=__max,__min,-1 do
local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
if((ile)and((tonumber(ile) or 0)>0))then
local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
for wywolanie in iterator2 do
if(not tab_wywolania[ss])then
GlownaFunkcja(wywolanie,ss);
end;
end;
if(not tab_wywolania[ss])then
tab_wywolania[ss]=true;
end;
end;
end;
end;
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local 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;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,nil,false,parametry,true;
end;
end;
end;
else
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
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return pozycja_artykulu,nazwa,nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return pozycja_artykulu,nazwa,nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
c5spgzp4pndfneeteyu2gla05i6r0a1
437989
437978
2022-08-17T17:58:54Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
self.numer_szablonu=self.numer_szablonu+1;
return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
local function LewyPrawyRownoscPionowa()
local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local zamykanie={
[lewy]="{{",
[prawy]="}}",
[rownosc]="=",
[pionowa]="|",
};
return zamykanie;
end;
return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorRownosc(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorPionowa(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
if(not numer_szablonu)then
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
end;
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
end;
function p.MinMaxSzablon(zmienna)
local numer_szablonu=1;
local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
local __min=nil;
local __max=0;
for numer_zamykania in iterator do
numer_zamykania=tonumber(numer_zamykania) or 0;
if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
__max=math.max(numer_zamykania,__max);
end;
return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
p:ZamieniajSzablonyStart();
local function ZamieniajSzablony(szablon1,szablon2,szablon3)
return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
end;
while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
end;
return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
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==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;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.ParametryPudelkaKsiazki(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
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
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 artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
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={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
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 mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;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 style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tab_wywolania={};
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
local __min,__max=p.MinMaxSzablon(wartosc);
if((__min~=nil)and(__max~=0)and(__max>=__min))then
for ss=__max,__min,-1 do
local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
if((ile)and((tonumber(ile) or 0)>0))then
local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
for wywolanie in iterator2 do
if(not tab_wywolania[ss])then
GlownaFunkcja(wywolanie,ss);
end;
end;
if(not tab_wywolania[ss])then
tab_wywolania[ss]=true;
end;
end;
end;
end;
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local 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;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,nil,false,parametry,true;
end;
end;
end;
else
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
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(mw.ustring.match(czy_pozycja_artykulu,"^[^{}%[%]|]*$")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return pozycja_artykulu,nazwa,nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return pozycja_artykulu,nazwa,nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
abtxnc4grh31zt3hibfjvyt7zdx6eip
437990
437989
2022-08-17T18:03:12Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
self.numer_szablonu=self.numer_szablonu+1;
return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
local function LewyPrawyRownoscPionowa()
local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local zamykanie={
[lewy]="{{",
[prawy]="}}",
[rownosc]="=",
[pionowa]="|",
};
return zamykanie;
end;
return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorRownosc(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorPionowa(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
if(not numer_szablonu)then
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
end;
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
end;
function p.MinMaxSzablon(zmienna)
local numer_szablonu=1;
local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
local __min=nil;
local __max=0;
for numer_zamykania in iterator do
numer_zamykania=tonumber(numer_zamykania) or 0;
if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
__max=math.max(numer_zamykania,__max);
end;
return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
p:ZamieniajSzablonyStart();
local function ZamieniajSzablony(szablon1,szablon2,szablon3)
return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
end;
while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
end;
return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
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==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;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.ParametryPudelkaKsiazki(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
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
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 artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
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={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
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 mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;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 style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tab_wywolania={};
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
local __min,__max=p.MinMaxSzablon(wartosc);
if((__min~=nil)and(__max~=0)and(__max>=__min))then
for ss=__max,__min,-1 do
local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
if((ile)and((tonumber(ile) or 0)>0))then
local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
for wywolanie in iterator2 do
if(not tab_wywolania[ss])then
GlownaFunkcja(wywolanie,ss);
end;
end;
if(not tab_wywolania[ss])then
tab_wywolania[ss]=true;
end;
end;
end;
end;
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local 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;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,nil,false,parametry,true;
end;
end;
end;
else
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
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return pozycja_artykulu,nazwa,nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return pozycja_artykulu,nazwa,nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
c5spgzp4pndfneeteyu2gla05i6r0a1
437991
437990
2022-08-17T18:03:47Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
self.numer_szablonu=self.numer_szablonu+1;
return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
local function LewyPrawyRownoscPionowa()
local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local zamykanie={
[lewy]="{{",
[prawy]="}}",
[rownosc]="=",
[pionowa]="|",
};
return zamykanie;
end;
return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorRownosc(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorPionowa(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
if(not numer_szablonu)then
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
end;
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
end;
function p.MinMaxSzablon(zmienna)
local numer_szablonu=1;
local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
local __min=nil;
local __max=0;
for numer_zamykania in iterator do
numer_zamykania=tonumber(numer_zamykania) or 0;
if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
__max=math.max(numer_zamykania,__max);
end;
return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
p:ZamieniajSzablonyStart();
local function ZamieniajSzablony(szablon1,szablon2,szablon3)
return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
end;
while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
end;
return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
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==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;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.ParametryPudelkaKsiazki(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
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
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 artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
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={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
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 mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;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 style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tab_wywolania={};
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
local __min,__max=p.MinMaxSzablon(wartosc);
if((__min~=nil)and(__max~=0)and(__max>=__min))then
for ss=__max,__min,-1 do
local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
if((ile)and((tonumber(ile) or 0)>0))then
local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
for wywolanie in iterator2 do
if(not tab_wywolania[ss])then
GlownaFunkcja(wywolanie,ss);
end;
end;
if(not tab_wywolania[ss])then
tab_wywolania[ss]=true;
end;
end;
end;
end;
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local 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;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,nil,false,parametry,true;
end;
end;
end;
else
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
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(mw.ustring.match(czy_pozycja_artykulu,"^[^{}%[%]|]*$")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return pozycja_artykulu,nazwa,nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return pozycja_artykulu,nazwa,nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
abtxnc4grh31zt3hibfjvyt7zdx6eip
437992
437991
2022-08-17T18:30:27Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
self.numer_szablonu=self.numer_szablonu+1;
return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
local function LewyPrawyRownoscPionowa()
local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local zamykanie={
[lewy]="{{",
[prawy]="}}",
[rownosc]="=",
[pionowa]="|",
};
return zamykanie;
end;
return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorRownosc(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorPionowa(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
if(not numer_szablonu)then
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
end;
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
end;
function p.MinMaxSzablon(zmienna)
local numer_szablonu=1;
local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
local __min=nil;
local __max=0;
for numer_zamykania in iterator do
numer_zamykania=tonumber(numer_zamykania) or 0;
if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
__max=math.max(numer_zamykania,__max);
end;
return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
p:ZamieniajSzablonyStart();
local function ZamieniajSzablony(szablon1,szablon2,szablon3)
return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
end;
while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
end;
return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
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==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;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.ParametryPudelkaKsiazki(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
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
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 artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
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={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
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 mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;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 style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tab_wywolania={};
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
local __min,__max=p.MinMaxSzablon(wartosc);
if((__min~=nil)and(__max~=0)and(__max>=__min))then
for ss=__max,__min,-1 do
local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
if((ile)and((tonumber(ile) or 0)>0))then
local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
for wywolanie in iterator2 do
if(not tab_wywolania[ss])then
GlownaFunkcja(wywolanie,ss);
end;
end;
if(not tab_wywolania[ss])then
tab_wywolania[ss]=true;
end;
end;
end;
end;
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local 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;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,nil,false,parametry,true;
end;
end;
end;
else
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
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return pozycja_artykulu,nazwa,nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return pozycja_artykulu,nazwa,nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
c5spgzp4pndfneeteyu2gla05i6r0a1
437994
437992
2022-08-17T18:50:21Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
self.numer_szablonu=self.numer_szablonu+1;
return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
local function LewyPrawyRownoscPionowa()
local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
local zamykanie={
[lewy]="{{",
[prawy]="}}",
[rownosc]="=",
[pionowa]="|",
};
return zamykanie;
end;
return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorRownosc(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorPionowa(numer_szablonu)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
if(not numer_szablonu)then
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
end;
if(not ktore)then
local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
else
local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
end;
function p.MinMaxSzablon(zmienna)
local numer_szablonu=1;
local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
local __min=nil;
local __max=0;
for numer_zamykania in iterator do
numer_zamykania=tonumber(numer_zamykania) or 0;
if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
__max=math.max(numer_zamykania,__max);
end;
return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
p:ZamieniajSzablonyStart();
local function ZamieniajSzablony(szablon1,szablon2,szablon3)
return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
end;
while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
end;
return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
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==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;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.ParametryPudelkaKsiazki(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
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,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_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
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 artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
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={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</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 twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
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 mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;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 style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tab_wywolania={};
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
local __min,__max=p.MinMaxSzablon(wartosc);
if((__min~=nil)and(__max~=0)and(__max>=__min))then
for ss=__max,__min,-1 do
local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
if((ile)and((tonumber(ile) or 0)>0))then
local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
for wywolanie in iterator2 do
if(not tab_wywolania[ss])then
GlownaFunkcja(wywolanie,ss);
end;
end;
if(not tab_wywolania[ss])then
tab_wywolania[ss]=true;
end;
end;
end;
end;
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local 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;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,nil,false,parametry,true;
end;
end;
end;
else
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
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return pozycja_artykulu,nazwa,nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return pozycja_artykulu,nazwa,nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
kti04s87epyrxfgvqozqh2275erejzn
Moduł:StronicowyParser/Rozdziały
828
58234
437995
437733
2022-08-17T19:12:56Z
Persino
2851
Scribunto
text/plain
local p={}
function p.PodajRozdzial(linia)
local liczba_rowna_sie=1;
local naglowek="";
while true do
local przetwarzany_naglowek=mw.ustring.match(linia,"^\n?"..mw.ustring.rep("=",liczba_rowna_sie).."%s*([^\n]+)%s*"..mw.ustring.rep("=",liczba_rowna_sie).."%s*\n?$");
if(mw.ustring.match(przetwarzany_naglowek,"^=([^\n]+)=$")~=nil)then
liczba_rowna_sie=liczba_rowna_sie+1;
else
local parametry_modul=require("Module:Parametry");
naglowek=parametry_modul["Odstępy"]{[1]=przetwarzany_naglowek,[2]="tak",};
return naglowek,liczba_rowna_sie;
end;
end;
end;
function p.PodajRozdzialHNumer(linia)
local liczba1,zawrtosc,liczba2=mw.ustring.match(linia,"<[Hh](%d+)[^<>]*>(.*)</[Hh](%d+)>");
if(liczba1==liczba2)then
return zawartosc,liczba1;
end;
return nil;
end;
function p.SprawdzCzyNaglowek(wiersz)
local czy_naglowek=mw.ustring.match(wiersz,"^(=+[^=]*=+)%s*$");
if(czy_naglowek)then return true,true;end;
czy_naglowek=mw.ustring.match(wiersz,"<[Hh]%d+[^<>]*>(.+)</[Hh]%d+>");
return czy_naglowek,false;
end;
function p.WierszHNumer(tekst)
local iter_h=mw.ustring.gmatch(tekst,"(<[Hh]%d+[^<>]*>.*</[Hh]%d+>)");
local techniczne_modul=require("Module:techniczne");
for wiersz_h in iter_h do
local wiersz_h_start=wiersz_h;
wiersz_h,_=mw.ustring.gsub(wiersz_h,"\n"," ");
wiersz_h="\n"..wiersz_h.."\n";
wiersz_h_start=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wiersz_h_start);
wiersz_h=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](wiersz_h);
tekst,_=mw.ustring.gsub(tekst,wiersz_h_start,wiersz_h);
end;
return tekst;
end;
function p.ParserPodajRozdzialTekstowy()
local zacznij;local wprowadzenie;local i=0;
local zawsze=false;
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local parametry_modul=require("Module:Parametry");
local tab_dozwolonych_szablonow_z_elementami_spisu_artykulow=stronicowyparser_obiekty_modul.tab_dozwolonych_szablonow_z_elementami_spisu_artykulow;
local szablony={};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
return function(linia,nazwa_przestrzeni_nazw,nazwa_ksiazki,okladka)
if(not zawsze)then
function __FUNKCJA(parametry)
local nazwa_szablonu=parametry[0];
local tab_kom=p.kompletnosc;
return tab_kom[nazwa_szablonu];
end;
local iter=mw.ustring.gmatch(linia,"([{%[][{%[].+[}%]][}%]])");
for wywolanie in iter do
local artykul,nazwa,link_szablon,id,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wywolanie,nazwa_przestrzeni_nazw,nazwa_ksiazki,__FUNKCJA);
if(not kom)then
if((artykul)and(mw.ustring.match(artykul,"^[Oo]kładka$")))then
zawsze=true;
return nil,nil,nil,nil,true;
end;
end;
end;
if(not zacznij)then
if(mw.ustring.match(linia,"^[^#:%*;%d%.].*[%.,:]%s*$"))then
wprowadzenie=true;
elseif((wprowadzenie)and(mw.ustring.match(linia,"^%s*$")))then
zacznij=true;
wprowadzenie=false;
end
elseif(mw.ustring.match(linia,"[^#:%*;%d%.].*[%.,:]%s*$"))then
zacznij=false;
wprowadzenie=true;
end;
end;
local szablon=mw.ustring.match(linia,"^.*{{([^|{}]+)|[^{}]*$");
if(szablon)then
szablon=parametry_modul["Odstępy"](szablon,"tak");
szablon=mw.getContentLanguage():ucfirst(szablon);
if(not tab_dozwolonych_szablonow_z_elementami_spisu_artykulow[szablon])then
table.insert(szablony,szablon);
end;
end;
if((szablon)and(#szablony>0)and(not tab_dozwolonych_szablonow_z_elementami_spisu_artykulow[szablony[#szablony]]))then
i=i+1;
end;
if(((not wprowadzenie) or zawsze)and(i<=0))then
local poczatek,numeracja, rozdzial=mw.ustring.match(linia,"^%s*([#:%*;]+)%s*([%d%.]-)%s*(.-)%s*$");
if(not poczatek and not numeracja and not rozdzial)then
numeracja, rozdzial=mw.ustring.match(linia,"^%s*([%d%.]+)%s*(.-)%s*$");
if(numeracja and rozdzial)then poczatek="";end;
end;
if(rozdzial)then
local czy_nieprawidlowe=mw.ustring.match(rozdzial,"{{.-}}");
if(not czy_nieprawidlowe)then
czy_nieprawidlowe=mw.ustring.match(rozdzial,"%[%[[^%[%]]-%]%]");
if(czy_nieprawidlowe)then
poczatek=nil;rozdzial=nil;numeracja=nil;
end;
else
poczatek=nil;rozdzial=nil;numeracja=nil;
end;
else
poczatek=nil;rozdzial=nil;numeracja=nil;
end;
if(not poczatek or not rozdzial)then
linia=mw.ustring.gsub(linia,"<[^<>]+>","");
rozdzial=mw.ustring.match(linia,"^%s*'+%s*([^{}%[%]']-[^:{}%[%]'])%s*'+%s*$");
if(rozdzial)then
if(not mw.ustring.match(rozdzial,"^.*!$"))then
return rozdzial,0,nil,nil,true;
end;
else
rozdzial=mw.ustring.match(linia,"^%s*(%a[%a%s,:%.]-:)%s*$");
if(rozdzial)then
return rozdzial,0,nil,nil,true;
end;
end;
else
return rozdzial,(#poczatek*(-1)),poczatek,numeracja,true;
end;
end;
if((#szablony>0)and(not tab_dozwolonych_szablonow_z_elementami_spisu_artykulow[szablony[#szablony]])and(mw.ustring.match(linia,"^[^{}]*}}.*$")))then
i=i-1;
if(i<0)then i=0;end;
table.remove(szablony,#szablony);
end;
return nil,nil,nil,nil,((i<=0) and true or false);
end;
end;
function p.TekstRozdzialuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu1=frame.args[2] or "";
local id_rozdzialu2=frame.args[3] or "";
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
return p.TekstRozdzialu(tekst,id_rozdzialu1,id_rozdzialu2);
end;
function p.ZwrocSekcjeNaglowkaStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"<[^<>]+>","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"'+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"^[%s_]+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+$","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+","_");
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
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");
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst=p.WierszHNumer(tekst);
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local tab_rozdzialy={};
local linki=require("Module:Linki");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzCzyNaglowek(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzialHNumer(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
local nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
nazwa_rozdzialu=linki["UsuńKategorie"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńZnaczniki"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńSzablonStylów"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńWywołaniaPlików"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńInterwiki"](nazwa_rozdzialu);
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"<[^<>]+>","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"'+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"^[%s_]+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+$","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+","_");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)%]%]","%1");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)|([^%[%]|]*)(.*)%]%]","%2");
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
if(id_rozdzialu==nazwa_rozdzialu)then
return frame:preprocess(nazwa_rozdzialu_aktualna);
end;
end;
end;
return nil;
end;
function p.KtoraSekcjaStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"<[^<>]+>","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"'+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"^[%s_]+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+$","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+","_");
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
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");
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst=p.WierszHNumer(tekst);
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local tab_rozdzialy={};
local ile=1;
local linki=require("Module:Linki");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzCzyNaglowek(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzialHNumer(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńKategorie"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńZnaczniki"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńSzablonStylów"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńWywołaniaPlików"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńInterwiki"](nazwa_rozdzialu);
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"<[^<>]+>","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"'+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"^[%s_]+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+$","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+","_");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)%]%]","%1");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)|([^%[%]|]*)(.*)%]%]","%2");
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return ile;
end;
ile=ile+1;
end
end;
return nil;
end;
function p.TekstRozdzialu(tekst,id_rozdzialu1,id_rozdzialu2)
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"<[^<>]+>","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"'+","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"^[%s_]+","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"[%s_]+$","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"[%s_]+","_");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"<[^<>]+>","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"'+","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"^[%s_]+","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"[%s_]+$","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"[%s_]+","_");
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");
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst=p.WierszHNumer(tekst);
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local tab_rozdzialy={};
local str=""
local nazwa_rozdzialu_aktualna;
local poziom_rozdzialu_aktualny;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzCzyNaglowek(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzialHNumer(wiersz);
end;
nazwa_rozdzialu=mw.getCurrentFrame():preprocess(nazwa_rozdzialu);
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"<[^<>]+>","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"'+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"^[%s_]+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+$","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+","_");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)%]%]","%1");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)|([^%[%]|]*)(.*)%]%]","%2");
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))
and((((id_rozdzialu2=="")or(not id_rozdzialu2))and(poziom_rozdzialu<=poziom_rozdzialu_aktualny))or(nazwa_rozdzialu==id_rozdzialu2)))then
return str;
end;
if((id_rozdzialu1~="")and(nazwa_rozdzialu==id_rozdzialu1))then
nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
poziom_rozdzialu_aktualny=poziom_rozdzialu;
str="";
elseif(id_rozdzialu1=="")then
nazwa_rozdzialu_aktualna="";
poziom_rozdzialu_aktualny=0;
if(id_rozdzialu2=="")then
return str;
elseif(nazwa_rozdzialu==id_rozdzialu2)then
return str;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
end;
if((id_rozdzialu1)and(id_rozdzialu1==""))then
return str;
elseif((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))then
return str;
end;
return "";
end;
p.kompletnosc={
["Kompletność"]=true,
["Kompletność junior"]=true,
["Kompletność krótka"]=true,
["Książka"]=true,
}
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki, czy_rozdzialy_analizowac)
local tekst=tekst_rozwiniety_calego_artykulu;
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst,_=mw.ustring.gsub(tekst,"<!%-%-.-%-%->","");
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local naglowek_aktualnego_rozdzialu;
local poziom_aktualnego_rozdzialu;
local poczatek_aktualnego_rozdzialu;
local numeracja_aktualnego_rozdzialu;
local czy_koniec=false;
local zaczynaj=nil;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parser=p.ParserPodajRozdzialTekstowy();
return function()
local str="";
local linia;
local czy_dalej=true;
for linia in iter do
local nazwa_rozdzialu;local poziom_rozdzialu;local poczatek_rozdzialu;local numeracja_rozdzialu;
if(czy_rozdzialy_analizowac)then
nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_dalej=parser(linia,nazwa_przestrzeni,nazwa_ksiazki);
else
nazwa_rozdzialu=nil;
end;
if((not nazwa_rozdzialu)and(czy_dalej))then
nazwa_rozdzialu=mw.ustring.match(linia,"^(=[^\n]+=)%s*$");
if(not nazwa_rozdzialu)then
if(not zaczynaj)then
function Wystepowanie(linia)
function RozwazajLinie(wystepowanie_linkow)
if(wystepowanie_linkow)then
local stronicowyparser_dalszefunkcje_modul=require("Module:StronicowyParser/DalszeFunkcje");
function __FUNKCJA(parametry)
local nazwa_szablonu=parametry[0];
local tab_kom=p.kompletnosc;
return tab_kom[nazwa_szablonu];
end;
local artykul,nazwa,tab_3,id,link_szablon,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wystepowanie_linkow,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA);
if(not kom)then
if((artykul)and(not mw.ustring.match(artykul,"^[Oo]kładka$")))then
return 1;
end;
else
return 0;
end;
end;
end;
local function RozwazajObiekty(wystepowanie_linkow)
if(wystepowanie_linkow)then
local wystepowanie_linku_lub_szablonu=mw.ustring.match(wystepowanie_linkow,"^%s*(%[%[[^%[%]]+%]%])") or mw.ustring.match(wystepowanie_linkow,"^%s*{{[^{}]+}}")
if(not wystepowanie_linku_lub_szablonu)then return;end;
local tak=nil;
local iter=mw.ustring.gmatch(wystepowanie_linkow,"(%[%[([^%[%]]+)%]%])");
for poz in iter do
local wartosc=RozwazajLinie(poz);
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
end;
local iter=mw.ustring.gmatch(wystepowanie_linkow,"({{[^{}]+}})")
for poz in iter do
local wartosc=RozwazajLinie(poz);
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
end;
return tak;
end;
end;
local wystepowanie_linkow=mw.ustring.match(linia,"^[#:%*;%d%.]*%s*'*%s*(.+)$")
local tak=RozwazajObiekty(wystepowanie_linkow,pozostale);
if(tak)then
nazwa_rozdzialu="Spis treści";
poziom_rozdzialu=nil;
str=((str~="")and (str.."\n"..linia) or linia);
zaczynaj=true;
else
nazwa_rozdzialu=nil;
end;
end;
Wystepowanie(linia);
end;
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(nazwa_rozdzialu);
zaczynaj=true;
end;
else
zaczynaj=true;
end;
if(nazwa_rozdzialu)then
if(not naglowek_aktualnego_rozdzialu)then
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
else
----------------------------------------------
local naglowek_posredni_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu;
local poziom_posredni_aktualnego_rozdzialu=poziom_aktualnego_rozdzialu;
local poczatek_posredni_aktualnego_rozdzialu=poczatek_aktualnego_rozdzialu;
local numeracja_posredni_aktualnego_rozdzialu=numeracja_aktualnego_rozdzialu;
----------------------------------------------
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
return naglowek_posredni_aktualnego_rozdzialu,str,poziom_posredni_aktualnego_rozdzialu,poczatek_posredni_aktualnego_rozdzialu,numeracja_posredni_aktualnego_rozdzialu;
end;
else
if(naglowek_aktualnego_rozdzialu)then
str=((str~="")and (str.."\n"..linia) or linia);
end;
end;
end;
if(czy_koniec)then return nil;end;
czy_koniec=true;
return naglowek_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu;
end;
end;
return p;
excklvi8y5j6sxie5i4gr25g3p5adaj
437996
437995
2022-08-17T19:24:07Z
Persino
2851
Scribunto
text/plain
local p={}
function p.PodajRozdzial(linia)
local liczba_rowna_sie=1;
local naglowek="";
while true do
local przetwarzany_naglowek=mw.ustring.match(linia,"^\n?"..mw.ustring.rep("=",liczba_rowna_sie).."%s*([^\n]+)%s*"..mw.ustring.rep("=",liczba_rowna_sie).."%s*\n?$");
if(mw.ustring.match(przetwarzany_naglowek,"^=([^\n]+)=$")~=nil)then
liczba_rowna_sie=liczba_rowna_sie+1;
else
local parametry_modul=require("Module:Parametry");
naglowek=parametry_modul["Odstępy"]{[1]=przetwarzany_naglowek,[2]="tak",};
return naglowek,liczba_rowna_sie;
end;
end;
end;
function p.PodajRozdzialHNumer(linia)
local liczba1,zawrtosc,liczba2=mw.ustring.match(linia,"<[Hh](%d+)[^<>]*>(.*)</[Hh](%d+)>");
if(liczba1==liczba2)then
return zawartosc,liczba1;
end;
return nil;
end;
function p.SprawdzCzyNaglowek(wiersz)
local czy_naglowek=mw.ustring.match(wiersz,"^(=+[^=]*=+)%s*$");
if(czy_naglowek)then return true,true;end;
czy_naglowek=mw.ustring.match(wiersz,"<[Hh]%d+[^<>]*>(.+)</[Hh]%d+>");
return czy_naglowek,false;
end;
function p.WierszHNumer(tekst)
local iter_h=mw.ustring.gmatch(tekst,"(<[Hh]%d+[^<>]*>.*</[Hh]%d+>)");
local techniczne_modul=require("Module:techniczne");
for wiersz_h in iter_h do
local wiersz_h_start=wiersz_h;
wiersz_h,_=mw.ustring.gsub(wiersz_h,"\n"," ");
wiersz_h="\n"..wiersz_h.."\n";
wiersz_h_start=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wiersz_h_start);
wiersz_h=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](wiersz_h);
tekst,_=mw.ustring.gsub(tekst,wiersz_h_start,wiersz_h);
end;
return tekst;
end;
function p.ParserPodajRozdzialTekstowy()
local zacznij;local wprowadzenie;local i=0;
local zawsze=false;
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local parametry_modul=require("Module:Parametry");
local tab_dozwolonych_szablonow_z_elementami_spisu_artykulow=stronicowyparser_obiekty_modul.tab_dozwolonych_szablonow_z_elementami_spisu_artykulow;
local szablony={};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
return function(linia,nazwa_przestrzeni_nazw,nazwa_ksiazki,okladka)
if(not zawsze)then
function __FUNKCJA(parametry)
local nazwa_szablonu=parametry[0];
local tab_kom=p.kompletnosc;
return tab_kom[nazwa_szablonu];
end;
local iter=mw.ustring.gmatch(linia,"([{%[][{%[].+[}%]][}%]])");
for wywolanie in iter do
local artykul,nazwa,tab_3,id,link_szablon,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wywolanie,nazwa_przestrzeni_nazw,nazwa_ksiazki,__FUNKCJA);
if(not kom)then
if((artykul)and(mw.ustring.match(artykul,"^[Oo]kładka$")))then
zawsze=true;
return nil,nil,nil,nil,true;
end;
end;
end;
if(not zacznij)then
if(mw.ustring.match(linia,"^[^#:%*;%d%.].*[%.,:]%s*$"))then
wprowadzenie=true;
elseif((wprowadzenie)and(mw.ustring.match(linia,"^%s*$")))then
zacznij=true;
wprowadzenie=false;
end
elseif(mw.ustring.match(linia,"[^#:%*;%d%.].*[%.,:]%s*$"))then
zacznij=false;
wprowadzenie=true;
end;
end;
local szablon=mw.ustring.match(linia,"^.*{{([^|{}]+)|[^{}]*$");
if(szablon)then
szablon=parametry_modul["Odstępy"](szablon,"tak");
szablon=mw.getContentLanguage():ucfirst(szablon);
if(not tab_dozwolonych_szablonow_z_elementami_spisu_artykulow[szablon])then
table.insert(szablony,szablon);
end;
end;
if((szablon)and(#szablony>0)and(not tab_dozwolonych_szablonow_z_elementami_spisu_artykulow[szablony[#szablony]]))then
i=i+1;
end;
if(((not wprowadzenie) or zawsze)and(i<=0))then
local poczatek,numeracja, rozdzial=mw.ustring.match(linia,"^%s*([#:%*;]+)%s*([%d%.]-)%s*(.-)%s*$");
if(not poczatek and not numeracja and not rozdzial)then
numeracja, rozdzial=mw.ustring.match(linia,"^%s*([%d%.]+)%s*(.-)%s*$");
if(numeracja and rozdzial)then poczatek="";end;
end;
if(rozdzial)then
local czy_nieprawidlowe=mw.ustring.match(rozdzial,"{{.-}}");
if(not czy_nieprawidlowe)then
czy_nieprawidlowe=mw.ustring.match(rozdzial,"%[%[[^%[%]]-%]%]");
if(czy_nieprawidlowe)then
poczatek=nil;rozdzial=nil;numeracja=nil;
end;
else
poczatek=nil;rozdzial=nil;numeracja=nil;
end;
else
poczatek=nil;rozdzial=nil;numeracja=nil;
end;
if(not poczatek or not rozdzial)then
linia=mw.ustring.gsub(linia,"<[^<>]+>","");
rozdzial=mw.ustring.match(linia,"^%s*'+%s*([^{}%[%]']-[^:{}%[%]'])%s*'+%s*$");
if(rozdzial)then
if(not mw.ustring.match(rozdzial,"^.*!$"))then
return rozdzial,0,nil,nil,true;
end;
else
rozdzial=mw.ustring.match(linia,"^%s*(%a[%a%s,:%.]-:)%s*$");
if(rozdzial)then
return rozdzial,0,nil,nil,true;
end;
end;
else
return rozdzial,(#poczatek*(-1)),poczatek,numeracja,true;
end;
end;
if((#szablony>0)and(not tab_dozwolonych_szablonow_z_elementami_spisu_artykulow[szablony[#szablony]])and(mw.ustring.match(linia,"^[^{}]*}}.*$")))then
i=i-1;
if(i<0)then i=0;end;
table.remove(szablony,#szablony);
end;
return nil,nil,nil,nil,((i<=0) and true or false);
end;
end;
function p.TekstRozdzialuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu1=frame.args[2] or "";
local id_rozdzialu2=frame.args[3] or "";
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
return p.TekstRozdzialu(tekst,id_rozdzialu1,id_rozdzialu2);
end;
function p.ZwrocSekcjeNaglowkaStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"<[^<>]+>","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"'+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"^[%s_]+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+$","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+","_");
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
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");
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst=p.WierszHNumer(tekst);
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local tab_rozdzialy={};
local linki=require("Module:Linki");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzCzyNaglowek(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzialHNumer(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
local nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
nazwa_rozdzialu=linki["UsuńKategorie"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńZnaczniki"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńSzablonStylów"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńWywołaniaPlików"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńInterwiki"](nazwa_rozdzialu);
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"<[^<>]+>","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"'+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"^[%s_]+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+$","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+","_");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)%]%]","%1");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)|([^%[%]|]*)(.*)%]%]","%2");
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
if(id_rozdzialu==nazwa_rozdzialu)then
return frame:preprocess(nazwa_rozdzialu_aktualna);
end;
end;
end;
return nil;
end;
function p.KtoraSekcjaStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"<[^<>]+>","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"'+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"^[%s_]+","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+$","");
id_rozdzialu,_=mw.ustring.gsub(id_rozdzialu,"[%s_]+","_");
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
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");
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst=p.WierszHNumer(tekst);
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local tab_rozdzialy={};
local ile=1;
local linki=require("Module:Linki");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzCzyNaglowek(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzialHNumer(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńKategorie"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńZnaczniki"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńSzablonStylów"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńWywołaniaPlików"](nazwa_rozdzialu);
nazwa_rozdzialu=linki["UsuńInterwiki"](nazwa_rozdzialu);
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"<[^<>]+>","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"'+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"^[%s_]+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+$","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+","_");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)%]%]","%1");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)|([^%[%]|]*)(.*)%]%]","%2");
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return ile;
end;
ile=ile+1;
end
end;
return nil;
end;
function p.TekstRozdzialu(tekst,id_rozdzialu1,id_rozdzialu2)
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"<[^<>]+>","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"'+","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"^[%s_]+","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"[%s_]+$","");
id_rozdzialu1,_=mw.ustring.gsub(id_rozdzialu1,"[%s_]+","_");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"<[^<>]+>","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"'+","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"^[%s_]+","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"[%s_]+$","");
id_rozdzialu2,_=mw.ustring.gsub(id_rozdzialu2,"[%s_]+","_");
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");
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst=p.WierszHNumer(tekst);
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local tab_rozdzialy={};
local str=""
local nazwa_rozdzialu_aktualna;
local poziom_rozdzialu_aktualny;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzCzyNaglowek(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzialHNumer(wiersz);
end;
nazwa_rozdzialu=mw.getCurrentFrame():preprocess(nazwa_rozdzialu);
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"<[^<>]+>","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"'+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"^[%s_]+","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+$","");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"[%s_]+","_");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)%]%]","%1");
nazwa_rozdzialu,_=mw.ustring.gsub(nazwa_rozdzialu,"%[%[:?([^%[%]|]+)|([^%[%]|]*)(.*)%]%]","%2");
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))
and((((id_rozdzialu2=="")or(not id_rozdzialu2))and(poziom_rozdzialu<=poziom_rozdzialu_aktualny))or(nazwa_rozdzialu==id_rozdzialu2)))then
return str;
end;
if((id_rozdzialu1~="")and(nazwa_rozdzialu==id_rozdzialu1))then
nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
poziom_rozdzialu_aktualny=poziom_rozdzialu;
str="";
elseif(id_rozdzialu1=="")then
nazwa_rozdzialu_aktualna="";
poziom_rozdzialu_aktualny=0;
if(id_rozdzialu2=="")then
return str;
elseif(nazwa_rozdzialu==id_rozdzialu2)then
return str;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
end;
if((id_rozdzialu1)and(id_rozdzialu1==""))then
return str;
elseif((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))then
return str;
end;
return "";
end;
p.kompletnosc={
["Kompletność"]=true,
["Kompletność junior"]=true,
["Kompletność krótka"]=true,
["Książka"]=true,
}
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki, czy_rozdzialy_analizowac)
local tekst=tekst_rozwiniety_calego_artykulu;
tekst,_=mw.ustring.gsub(tekst,"\n\n","\n \n");
tekst,_=mw.ustring.gsub(tekst,"<!%-%-.-%-%->","");
local iter=mw.ustring.gmatch(tekst,"([^\n]+)");
local naglowek_aktualnego_rozdzialu;
local poziom_aktualnego_rozdzialu;
local poczatek_aktualnego_rozdzialu;
local numeracja_aktualnego_rozdzialu;
local czy_koniec=false;
local zaczynaj=nil;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parser=p.ParserPodajRozdzialTekstowy();
return function()
local str="";
local linia;
local czy_dalej=true;
for linia in iter do
local nazwa_rozdzialu;local poziom_rozdzialu;local poczatek_rozdzialu;local numeracja_rozdzialu;
if(czy_rozdzialy_analizowac)then
nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_dalej=parser(linia,nazwa_przestrzeni,nazwa_ksiazki);
else
nazwa_rozdzialu=nil;
end;
if((not nazwa_rozdzialu)and(czy_dalej))then
nazwa_rozdzialu=mw.ustring.match(linia,"^(=[^\n]+=)%s*$");
if(not nazwa_rozdzialu)then
if(not zaczynaj)then
function Wystepowanie(linia)
function RozwazajLinie(wystepowanie_linkow)
if(wystepowanie_linkow)then
local stronicowyparser_dalszefunkcje_modul=require("Module:StronicowyParser/DalszeFunkcje");
function __FUNKCJA(parametry)
local nazwa_szablonu=parametry[0];
local tab_kom=p.kompletnosc;
return tab_kom[nazwa_szablonu];
end;
local artykul,nazwa,tab_3,id,link_szablon,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wystepowanie_linkow,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA);
if(not kom)then
if((artykul)and(not mw.ustring.match(artykul,"^[Oo]kładka$")))then
return 1;
end;
else
return 0;
end;
end;
end;
local function RozwazajObiekty(wystepowanie_linkow)
if(wystepowanie_linkow)then
local wystepowanie_linku_lub_szablonu=mw.ustring.match(wystepowanie_linkow,"^%s*(%[%[[^%[%]]+%]%])") or mw.ustring.match(wystepowanie_linkow,"^%s*{{[^{}]+}}")
if(not wystepowanie_linku_lub_szablonu)then return;end;
local tak=nil;
local iter=mw.ustring.gmatch(wystepowanie_linkow,"(%[%[([^%[%]]+)%]%])");
for poz in iter do
local wartosc=RozwazajLinie(poz);
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
end;
local iter=mw.ustring.gmatch(wystepowanie_linkow,"({{[^{}]+}})")
for poz in iter do
local wartosc=RozwazajLinie(poz);
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
end;
return tak;
end;
end;
local wystepowanie_linkow=mw.ustring.match(linia,"^[#:%*;%d%.]*%s*'*%s*(.+)$")
local tak=RozwazajObiekty(wystepowanie_linkow,pozostale);
if(tak)then
nazwa_rozdzialu="Spis treści";
poziom_rozdzialu=nil;
str=((str~="")and (str.."\n"..linia) or linia);
zaczynaj=true;
else
nazwa_rozdzialu=nil;
end;
end;
Wystepowanie(linia);
end;
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajRozdzial(nazwa_rozdzialu);
zaczynaj=true;
end;
else
zaczynaj=true;
end;
if(nazwa_rozdzialu)then
if(not naglowek_aktualnego_rozdzialu)then
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
else
----------------------------------------------
local naglowek_posredni_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu;
local poziom_posredni_aktualnego_rozdzialu=poziom_aktualnego_rozdzialu;
local poczatek_posredni_aktualnego_rozdzialu=poczatek_aktualnego_rozdzialu;
local numeracja_posredni_aktualnego_rozdzialu=numeracja_aktualnego_rozdzialu;
----------------------------------------------
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
return naglowek_posredni_aktualnego_rozdzialu,str,poziom_posredni_aktualnego_rozdzialu,poczatek_posredni_aktualnego_rozdzialu,numeracja_posredni_aktualnego_rozdzialu;
end;
else
if(naglowek_aktualnego_rozdzialu)then
str=((str~="")and (str.."\n"..linia) or linia);
end;
end;
end;
if(czy_koniec)then return nil;end;
czy_koniec=true;
return naglowek_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu;
end;
end;
return p;
gk1a3z11qmemvllr84lsfs9zko74az4
Wikipedysta:Persino/Gadget-StronicowyParser.js/NumerSubst.js
2
58332
437981
437686
2022-08-17T12:54:20Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.NumerowanieNaglowkow=function(){
let gadget_numerowanie=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'NumerSubst-numerowanie': 'Włącz numerowanie nagłówków.',
'NumerSubst-name': 'Numerowanie nagłówków',
'NumerSubst-description-page': 'Wikibooks:StronicowyParser/NumerSubst',
});
gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
{
name: 'numerowanie',
desc: mw.msg('NumerSubst-numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_NumerSubst-numerowanie']
}]);
gadget_numerowanie=(gConfig.get('NumerSubst', 'numerowanie')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
let zmienna_this=this;
this.NumerowanieNaglowkowStron=async function(id_numerowanie,prefix,tab_promise){
await StronicowyParser.muteks.zablokuj(true);
var headline=id_numerowanie.getElementsByClassName('mw-headline');
//if((headline==null)||(headline.length==0)){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename;
let namespacenumber = StronicowyParser.pageinfo.namespacenumber;
let bookname=StronicowyParser.pageinfo.bookname;
let diff_brudnopis=/^Brudnopis\/[^\/]*\/[^\/]*$/g;
let diff_user=/^[^\/]*\/[^\/]*$/g;
let wikijunior_mainpage="Strona_główna";
let test_main_page=(((namespacenumber !== 0) && (namespacenumber != 104) && ( namespacenumber != 4) && (namespacenumber != 2))
|| ((namespacenumber == 104) && (bookname == wikijunior_mainpage))
|| ((namespacenumber == 4) && (! diff_brudnopis.test(bookname)))
|| ((namespacenumber == 2) && (! diff_user.test(bookname)))
);
let json_wikikod=null;
if((prefix=="")&&(artykul=="")&&(!test_main_page)){
//if(tab_promise){tab_promise.push(true);};
await StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|PobierzDaneKsiążki||nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki='+aktualna_strona+'|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
}).then(function(data){
// await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
json_wikikod=JSON.parse(wikikod);
// StronicowyParser.muteks.odblokuj();
// if(tab_promise){tab_promise.pop();}
}).catch(()=>{});
}
function CzyMaNumeracje(){
if(json_wikikod){
for(let p in json_wikikod){
for(let s in json_wikikod[p]){
for(let f in json_wikikod[p][s]){
if(((f!="")?true:false)){return true;}
}
}
}
}
return false;
}
let czy_ma_numeracje=CzyMaNumeracje();
console.log(json_wikikod,"MAMUT1");
if(!czy_ma_numeracje){json_wikikod=null;}
console.log(json_wikikod,czy_ma_numeracje,"MAMUT2");
let hnumer=new StronicowyParser.HNumer();
let fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
let fun_hnumer_2=new Array();
let fun_hnumer_3=new Array();
let fun_strona_hnumer=new Array();
let numeracja=new Array(0);
let numeracja_2=new Array();
let numeracja_3=new Array();
let poziom_naglowka_podrecznika=undefined;
let tab_spis_tresci={"Spis treści":true,}
let artykuly_ze_spisem_tresci={"Spis treści":true,}
let fullname=StronicowyParser.pageinfo.fullname;
let tak=false;
let tak_poprzednie=Array();
let poziom_naglowka_spisu_tresci=new Array();
let poziom_naglowka_spisu_tresci2=new Array(false);
let numeracja_strona=Array();
let pierwszy_naglowek=true;
let jeden_glowny_naglowek=false;
let pierwszy_naglowek_2=new Array();
let jeden_glowny_naglowek_2=new Array();
let headline_artykul=$('#mw-content-text .mw-parser-output .mw-headline');
let prefix2=Array();let artykul2=Array();let jeden_glowny_naglowek2=Array();let pierwszy_naglowek2=Array();
let strona_start_poprzednie=Array();
let strona_start=$('.strona_start');
let czy_id_numerowanie=strona_start.find(id_numerowanie);
let prefix_strona_start=undefined;;
let artykul_strona_start=artykul;
let main_spis_tresci=undefined;
async function Headline(i,element_headline){
//let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
return;
}else{
let h=parent.tagName.toUpperCase();
if(/^H\d+$/g.test(h)){
let numer=h.replace(/^H/g,"");
numer=parseInt(numer);
if((isNaN(numer))||(numer<1)||(numer>6)){
return;
}
}else{
return;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]);
if((!json_wikikod)||((json_wikikod[nazwa])&&((json_wikikod[nazwa][""])||(json_wikikod[nazwa]["0"])))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
if(!json_wikikod){
for(let i=0;i<headline.length;++i){
await Headline(i,headline[i]);
}
}else{
console.log(json_wikikod,"GABUS");
let dzieci=$(id_numerowanie).find("h1 .mw-headline, h2 .mw-headline, h3 .mw-headline, h4 .mw-headline, h5 .mw-headline, h6 .mw-headline, p, a,ul li, ol li");
let i=0;
for(let k=0;k<dzieci.length;++k){
let element=dzieci[k];
let naglowek;
if($(element).hasClass('mw-headline')){
naglowek=element.innerHTML.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
console.log(naglowek,"GABUS");
await Headline(i,element);
++i;
}else{
let tag=element.tagName.toUpperCase();
if(tag=="P"){
let zawartosc=element.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"GABUS")
}else if(tag=="A"){
if($(element).children('.tocnumber, .toctext').length==0){
let zawartosc=element.innerHTML;
let href=StronicowyParser.kodowanie.DecodeHtml(element.getAttribute('href'),true);
if((href)&&(!/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g.test(href))){
href=href.replace(/^.*\?title=([^&]+).*$/g,"$1").replace(/\/wiki\//g,"").replace(/^([^#]*).*$/g,"$1");
if(!/^[^\/]*$/g.test(href)){
let artykul=href.replace(/^[^\/]*\//g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
/**/
console.log(zawartosc,artykul,"GABUS");
}
}
}
}else if(tag=="LI"){
let kopia=element.cloneNode(true);
$(kopia).children('ul, ol').remove();
if($(kopia).find('a').length==0){
let zawartosc=kopia.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"LI","GABUS")
}
}else{
console.log("Błąd wewnętrzny skryptu!")
return;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
mkt2rgv12upfibnccllnrlnkbt6my15
437986
437981
2022-08-17T17:40:36Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.NumerowanieNaglowkow=function(){
let gadget_numerowanie=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'NumerSubst-numerowanie': 'Włącz numerowanie nagłówków.',
'NumerSubst-name': 'Numerowanie nagłówków',
'NumerSubst-description-page': 'Wikibooks:StronicowyParser/NumerSubst',
});
gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
{
name: 'numerowanie',
desc: mw.msg('NumerSubst-numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_NumerSubst-numerowanie']
}]);
gadget_numerowanie=(gConfig.get('NumerSubst', 'numerowanie')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
let zmienna_this=this;
this.NumerowanieNaglowkowStron=async function(id_numerowanie,prefix,tab_promise){
await StronicowyParser.muteks.zablokuj(true);
var headline=id_numerowanie.getElementsByClassName('mw-headline');
//if((headline==null)||(headline.length==0)){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename;
let namespacenumber = StronicowyParser.pageinfo.namespacenumber;
let bookname=StronicowyParser.pageinfo.bookname;
let diff_brudnopis=/^Brudnopis\/[^\/]*\/[^\/]*$/g;
let diff_user=/^[^\/]*\/[^\/]*$/g;
let wikijunior_mainpage="Strona_główna";
let test_main_page=(((namespacenumber !== 0) && (namespacenumber != 104) && ( namespacenumber != 4) && (namespacenumber != 2))
|| ((namespacenumber == 104) && (bookname == wikijunior_mainpage))
|| ((namespacenumber == 4) && (! diff_brudnopis.test(bookname)))
|| ((namespacenumber == 2) && (! diff_user.test(bookname)))
);
let json_wikikod=null;
if((prefix=="")&&(artykul=="")&&(!test_main_page)){
//if(tab_promise){tab_promise.push(true);};
await StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|PobierzDaneKsiążki||nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki='+aktualna_strona+'|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
}).then(function(data){
// await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
json_wikikod=JSON.parse(wikikod);
// StronicowyParser.muteks.odblokuj();
// if(tab_promise){tab_promise.pop();}
}).catch(()=>{});
}
function CzyMaNumeracje(){
if(json_wikikod){
for(let p in json_wikikod){
for(let s in json_wikikod[p]){
for(let f in json_wikikod[p][s]){
if(((f!="")?true:false)){return true;}
}
}
}
}
return false;
}
let czy_ma_numeracje=CzyMaNumeracje();
console.log(json_wikikod,"MAMUT1");
if(!czy_ma_numeracje){json_wikikod=null;}
console.log(json_wikikod,czy_ma_numeracje,"MAMUT2");
let hnumer=new StronicowyParser.HNumer();
let fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
let fun_hnumer_2=new Array();
let fun_hnumer_3=new Array();
let fun_strona_hnumer=new Array();
let numeracja=new Array(0);
let numeracja_2=new Array();
let numeracja_3=new Array();
let poziom_naglowka_podrecznika=undefined;
let tab_spis_tresci={"Spis treści":true,}
let artykuly_ze_spisem_tresci={"Spis treści":true,}
let fullname=StronicowyParser.pageinfo.fullname;
let tak=false;
let tak_poprzednie=Array();
let poziom_naglowka_spisu_tresci=new Array();
let poziom_naglowka_spisu_tresci2=new Array(false);
let numeracja_strona=Array();
let pierwszy_naglowek=true;
let jeden_glowny_naglowek=false;
let pierwszy_naglowek_2=new Array();
let jeden_glowny_naglowek_2=new Array();
let headline_artykul=$('#mw-content-text .mw-parser-output .mw-headline');
let prefix2=Array();let artykul2=Array();let jeden_glowny_naglowek2=Array();let pierwszy_naglowek2=Array();
let strona_start_poprzednie=Array();
let strona_start=$('.strona_start');
let czy_id_numerowanie=strona_start.find(id_numerowanie);
let prefix_strona_start=undefined;;
let artykul_strona_start=artykul;
let main_spis_tresci=undefined;
async function Headline(i,element_headline){
//let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
return;
}else{
let h=parent.tagName.toUpperCase();
if(/^H\d+$/g.test(h)){
let numer=h.replace(/^H/g,"");
numer=parseInt(numer);
if((isNaN(numer))||(numer<1)||(numer>6)){
return;
}
}else{
return;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]);
if((!json_wikikod)||((json_wikikod[nazwa])&&((json_wikikod[nazwa][""])||(json_wikikod[nazwa]["0"])))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
if(!json_wikikod){
for(let i=0;i<headline.length;++i){
await Headline(i,headline[i]);
}
}else{
console.log(json_wikikod,"GABUS");
let dzieci=$(id_numerowanie).find("h1 .mw-headline, h2 .mw-headline, h3 .mw-headline, h4 .mw-headline, h5 .mw-headline, h6 .mw-headline, p, a,ul li, ol li");
let i=0;
for(let k=0;k<dzieci.length;++k){
let element=dzieci[k];
let naglowek;
if($(element).hasClass('mw-headline')){
naglowek=element.innerHTML.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
console.log(naglowek,"GABUS");
await Headline(i,element);
++i;
}else{
let tag=element.tagName.toUpperCase();
if(tag=="P"){
let zawartosc=element.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"GABUS")
}else if(tag=="A"){
if($(element).children('.tocnumber, .toctext').length==0){
let zawartosc=element.innerHTML;
let href=StronicowyParser.kodowanie.DecodeHtml(element.getAttribute('href'),true);
if((href)&&(!/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g.test(href))){
href=href.replace(/^.*\?title=([^&]+).*$/g,"$1").replace(/\/wiki\//g,"").replace(/^([^#]*).*$/g,"$1");
if(!/^[^\/]*$/g.test(href)){
let artykul=href.replace(/^[^\/]*\//g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
/**/
console.log(zawartosc,artykul,"GABUS");
}
}
}
}else if(tag=="LI"){
let kopia=element.cloneNode(true);
$(kopia).children('ul, ol').remove();
if($(kopia).find('a').length==0){
let zawartosc=kopia.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"LI","GABUS")
}
}else{
console.log("Błąd wewnętrzny skryptu!")
return;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
mnjsn2sb37sus7dv0oz1dnchfprnizh
437987
437986
2022-08-17T17:42:18Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.NumerowanieNaglowkow=function(){
let gadget_numerowanie=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'NumerSubst-numerowanie': 'Włącz numerowanie nagłówków.',
'NumerSubst-name': 'Numerowanie nagłówków',
'NumerSubst-description-page': 'Wikibooks:StronicowyParser/NumerSubst',
});
gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
{
name: 'numerowanie',
desc: mw.msg('NumerSubst-numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_NumerSubst-numerowanie']
}]);
gadget_numerowanie=(gConfig.get('NumerSubst', 'numerowanie')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
let zmienna_this=this;
this.NumerowanieNaglowkowStron=async function(id_numerowanie,prefix,tab_promise){
await StronicowyParser.muteks.zablokuj(true);
var headline=id_numerowanie.getElementsByClassName('mw-headline');
//if((headline==null)||(headline.length==0)){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename;
let namespacenumber = StronicowyParser.pageinfo.namespacenumber;
let bookname=StronicowyParser.pageinfo.bookname;
let diff_brudnopis=/^Brudnopis\/[^\/]*\/[^\/]*$/g;
let diff_user=/^[^\/]*\/[^\/]*$/g;
let wikijunior_mainpage="Strona_główna";
let test_main_page=(((namespacenumber !== 0) && (namespacenumber != 104) && ( namespacenumber != 4) && (namespacenumber != 2))
|| ((namespacenumber == 104) && (bookname == wikijunior_mainpage))
|| ((namespacenumber == 4) && (! diff_brudnopis.test(bookname)))
|| ((namespacenumber == 2) && (! diff_user.test(bookname)))
);
let json_wikikod=null;
if((prefix=="")&&(artykul=="")&&(!test_main_page)){
//if(tab_promise){tab_promise.push(true);};
await StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|PobierzDaneKsiążki||nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki='+aktualna_strona+'|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
}).then(function(data){
// await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
json_wikikod=JSON.parse(wikikod);
// StronicowyParser.muteks.odblokuj();
// if(tab_promise){tab_promise.pop();}
}).catch(()=>{});
}
function CzyMaNumeracje(){
if(json_wikikod){
for(let p in json_wikikod){
for(let s in json_wikikod[p]){
for(let f in json_wikikod[p][s]){
if(((f!="")?true:false)){return true;}
}
}
}
}
return false;
}
let czy_ma_numeracje=CzyMaNumeracje();
console.log(json_wikikod,"MAMUT1");
if(!czy_ma_numeracje){json_wikikod=null;}
console.log(json_wikikod,czy_ma_numeracje,"MAMUT2");
let hnumer=new StronicowyParser.HNumer();
let fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
let fun_hnumer_2=new Array();
let fun_hnumer_3=new Array();
let fun_strona_hnumer=new Array();
let numeracja=new Array(0);
let numeracja_2=new Array();
let numeracja_3=new Array();
let poziom_naglowka_podrecznika=undefined;
let tab_spis_tresci={"Spis treści":true,}
let artykuly_ze_spisem_tresci={"Spis treści":true,}
let fullname=StronicowyParser.pageinfo.fullname;
let tak=false;
let tak_poprzednie=Array();
let poziom_naglowka_spisu_tresci=new Array();
let poziom_naglowka_spisu_tresci2=new Array(false);
let numeracja_strona=Array();
let pierwszy_naglowek=true;
let jeden_glowny_naglowek=false;
let pierwszy_naglowek_2=new Array();
let jeden_glowny_naglowek_2=new Array();
let headline_artykul=$('#mw-content-text .mw-parser-output .mw-headline');
let prefix2=Array();let artykul2=Array();let jeden_glowny_naglowek2=Array();let pierwszy_naglowek2=Array();
let strona_start_poprzednie=Array();
let strona_start=$('.strona_start');
let czy_id_numerowanie=strona_start.find(id_numerowanie);
let prefix_strona_start=undefined;;
let artykul_strona_start=artykul;
let main_spis_tresci=undefined;
async function Headline(i,element_headline){
//let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
return;
}else{
let h=parent.tagName.toUpperCase();
if(/^H\d+$/g.test(h)){
let numer=h.replace(/^H/g,"");
numer=parseInt(numer);
if((isNaN(numer))||(numer<1)||(numer>6)){
return;
}
}else{
return;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]);
if((!json_wikikod)||((json_wikikod[nazwa])&&((json_wikikod[nazwa][""])||(json_wikikod[nazwa]["0"])))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
if(!json_wikikod){
for(let i=0;i<headline.length;++i){
await Headline(i,headline[i]);
}
}else{
console.log(json_wikikod,"GABUS");
let dzieci=$(id_numerowanie).find("h1 .mw-headline, h2 .mw-headline, h3 .mw-headline, h4 .mw-headline, h5 .mw-headline, h6 .mw-headline, p, a,ul li, ol li");
let i=0;
for(let k=0;k<dzieci.length;++k){
let element=dzieci[k];
let naglowek;
if($(element).hasClass('mw-headline')){
naglowek=element.innerHTML.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
console.log(naglowek,"GABUS");
await Headline(i,element);
++i;
}else{
let tag=element.tagName.toUpperCase();
if(tag=="P"){
let zawartosc=element.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"GABUS")
}else if(tag=="A"){
if($(element).children('.tocnumber, .toctext').length==0){
let zawartosc=element.innerHTML;
let href=StronicowyParser.kodowanie.DecodeHtml(element.getAttribute('href'),true);
if((href)&&(!/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g.test(href))){
href=href.replace(/^.*\?title=([^&]+).*$/g,"$1").replace(/\/wiki\//g,"").replace(/^([^#]*).*$/g,"$1");
if(!/^[^\/]*$/g.test(href)){
let artykul=href.replace(/^[^\/]*\//g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
/**/
console.log(zawartosc,artykul,"GABUS");
}
}
}
}else if(tag=="LI"){
let kopia=element.cloneNode(true);
$(kopia).children('ul, ol').remove();
if($(kopia).find('a').length==0){
let zawartosc=kopia.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"LI","GABUS")
}
}else{
console.log("Błąd wewnętrzny skryptu!")
return;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
nhvqf2eq2p46kt6evrdeirxf1lzbxtn
437988
437987
2022-08-17T17:44:20Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.NumerowanieNaglowkow=function(){
let gadget_numerowanie=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'NumerSubst-numerowanie': 'Włącz numerowanie nagłówków.',
'NumerSubst-name': 'Numerowanie nagłówków',
'NumerSubst-description-page': 'Wikibooks:StronicowyParser/NumerSubst',
});
gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
{
name: 'numerowanie',
desc: mw.msg('NumerSubst-numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_NumerSubst-numerowanie']
}]);
gadget_numerowanie=(gConfig.get('NumerSubst', 'numerowanie')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
let zmienna_this=this;
this.NumerowanieNaglowkowStron=async function(id_numerowanie,prefix,tab_promise){
await StronicowyParser.muteks.zablokuj(true);
var headline=id_numerowanie.getElementsByClassName('mw-headline');
//if((headline==null)||(headline.length==0)){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename;
let namespacenumber = StronicowyParser.pageinfo.namespacenumber;
let bookname=StronicowyParser.pageinfo.bookname;
let diff_brudnopis=/^Brudnopis\/[^\/]*\/[^\/]*$/g;
let diff_user=/^[^\/]*\/[^\/]*$/g;
let wikijunior_mainpage="Strona_główna";
let test_main_page=(((namespacenumber !== 0) && (namespacenumber != 104) && ( namespacenumber != 4) && (namespacenumber != 2))
|| ((namespacenumber == 104) && (bookname == wikijunior_mainpage))
|| ((namespacenumber == 4) && (! diff_brudnopis.test(bookname)))
|| ((namespacenumber == 2) && (! diff_user.test(bookname)))
);
let json_wikikod=null;
if((prefix=="")&&(artykul=="")&&(!test_main_page)){
//if(tab_promise){tab_promise.push(true);};
await StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|PobierzDaneKsiążki||nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki='+aktualna_strona+'|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
}).then(function(data){
// await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
json_wikikod=JSON.parse(wikikod);
// StronicowyParser.muteks.odblokuj();
// if(tab_promise){tab_promise.pop();}
}).catch(()=>{});
}
function CzyMaNumeracje(){
if(json_wikikod){
for(let p in json_wikikod){
for(let s in json_wikikod[p]){
for(let f in json_wikikod[p][s]){
if(((f!="")?true:false)){return true;}
}
}
}
}
return false;
}
let czy_ma_numeracje=CzyMaNumeracje();
console.log(json_wikikod,"MAMUT1");
if(!czy_ma_numeracje){json_wikikod=null;}
console.log(json_wikikod,czy_ma_numeracje,"MAMUT2");
let hnumer=new StronicowyParser.HNumer();
let fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
let fun_hnumer_2=new Array();
let fun_hnumer_3=new Array();
let fun_strona_hnumer=new Array();
let numeracja=new Array(0);
let numeracja_2=new Array();
let numeracja_3=new Array();
let poziom_naglowka_podrecznika=undefined;
let tab_spis_tresci={"Spis treści":true,}
let artykuly_ze_spisem_tresci={"Spis treści":true,}
let fullname=StronicowyParser.pageinfo.fullname;
let tak=false;
let tak_poprzednie=Array();
let poziom_naglowka_spisu_tresci=new Array();
let poziom_naglowka_spisu_tresci2=new Array(false);
let numeracja_strona=Array();
let pierwszy_naglowek=true;
let jeden_glowny_naglowek=false;
let pierwszy_naglowek_2=new Array();
let jeden_glowny_naglowek_2=new Array();
let headline_artykul=$('#mw-content-text .mw-parser-output .mw-headline');
let prefix2=Array();let artykul2=Array();let jeden_glowny_naglowek2=Array();let pierwszy_naglowek2=Array();
let strona_start_poprzednie=Array();
let strona_start=$('.strona_start');
let czy_id_numerowanie=strona_start.find(id_numerowanie);
let prefix_strona_start=undefined;;
let artykul_strona_start=artykul;
let main_spis_tresci=undefined;
async function Headline(i,element_headline){
//let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
return;
}else{
let h=parent.tagName.toUpperCase();
if(/^H\d+$/g.test(h)){
let numer=h.replace(/^H/g,"");
numer=parseInt(numer);
if((isNaN(numer))||(numer<1)||(numer>6)){
return;
}
}else{
return;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]);
if((!json_wikikod)||((json_wikikod[nazwa])&&((json_wikikod[nazwa][""])||(json_wikikod[nazwa]["0"])))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
if(!json_wikikod){
for(let i=0;i<headline.length;++i){
await Headline(i,headline[i]);
}
}else{
console.log(json_wikikod,"GABUS");
let dzieci=$(id_numerowanie).find("h1 .mw-headline, h2 .mw-headline, h3 .mw-headline, h4 .mw-headline, h5 .mw-headline, h6 .mw-headline, p, a,ul li, ol li");
let i=0;
for(let k=0;k<dzieci.length;++k){
let element=dzieci[k];
let naglowek;
if($(element).hasClass('mw-headline')){
naglowek=element.innerHTML.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
console.log(naglowek,"GABUS");
await Headline(i,element);
++i;
}else{
let tag=element.tagName.toUpperCase();
if(tag=="P"){
let zawartosc=element.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"GABUS")
}else if(tag=="A"){
if($(element).children('.tocnumber, .toctext').length==0){
let zawartosc=element.innerHTML;
let href=StronicowyParser.kodowanie.DecodeHtml(element.getAttribute('href'),true);
if((href)&&(!/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g.test(href))){
href=href.replace(/^.*\?title=([^&]+).*$/g,"$1").replace(/\/wiki\//g,"").replace(/^([^#]*).*$/g,"$1");
if(!/^[^\/]*$/g.test(href)){
let artykul=href.replace(/^[^\/]*\//g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
/**/
console.log(zawartosc,artykul,"GABUS");
}
}
}
}else if(tag=="LI"){
let kopia=element.cloneNode(true);
$(kopia).children('ul, ol').remove();
if($(kopia).find('a').length==0){
let zawartosc=kopia.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
naglowek=zawartosc;
/**/
console.log(zawartosc,"LI","GABUS")
}
}else{
console.log("Błąd wewnętrzny skryptu!")
return;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
lf36wt84vuvwt1fmll39t0sit1mxy5h