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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_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&amp;action=edit&amp;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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; 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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; 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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; 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(/&amp;/g,"&").replace(/&nbsp;/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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } 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(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } 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(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } 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(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } 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(/&nbsp;/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