Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.39.0-wmf.23
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
Szablon:Dokumentacja
10
19880
437521
437029
2022-08-12T05:30:55Z
Persino
2851
wikitext
text/x-wiki
<templatestyles src="Szablon:Dokumentacja/styles.css" /><templatestyles src="Szablon:Fmbox/styles.css" /><templatestyles src="Szablon:Mbox/styles.css" />
<div class="template-documentation" style="padding: 14px;">{{
#if: {{{nagłówek|Dokumentacja}}}
|<div style="padding-bottom: {{{heading-padding|3px}}}; border-bottom: 1px solid #aaa; margin-bottom: {{{margines nagłówka|1ex}}}"><span style="{{{styl nagłówka|font-size: 125%; font-weight: 600;}}}">[[Plik:Template-info.png|50px]] {{{nagłówek|Dokumentacja{{#switch: {{NAMESPACE}}|Szablon= szablonu|Moduł= modułu|#default=}}}}}</span>
<span class="plainlinks" id="doc_editlinks" style="margin-left: 1em; font-size: 90%;">{{
#ifexist: {{{1|{{Dokumentacja/nazwa}}}}}
|<!-- /opis istnieje -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}}} zobacz]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=edit}} edytuj]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=history}} historia]] [{{odśwież|odśwież}}]
|<!-- nie ma /opis -->{{
#if: {{{zawartość|}}}
|[{{odśwież|odśwież}}]
|<!-- no content -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa }}}}}|action=edit&preload={{{preload opisu|Szablon:Dokumentacja/preload}}}}} stwórz]] [{{odśwież|odśwież}}]
}}
}}</span></div>
}}<!-- endif heading -->
<div class="main_scrollbar_documentation mw-overflow-x" style="overflow-x:auto;"><div style="min-width:fit-content;width:100%;">{{{zawartość|{{ {{ #ifexist: {{{1|{{Dokumentacja/nazwa}}}}} | {{{1|{{Dokumentacja/nazwa}}}}} | ns:0 }} }}}}}</div></div></div>
{{#switch: {{{okno linków}}}|nie=|tak|#default={{#if:{{{zawartość|}}}||<table id="documentation-meta-data" class="plainlinks fmbox fmbox-system" role="presentation" style="background-color: #ecfcf4">
<tr>
<td class="mbox-text" style="font-style: italic">
<div id="template_doc_page_transcluded" class="plainlinks" style="font-style:italic;">{{
#ifeq: {{{transcluded|show}}} | show
|<!-- transcluded show -->{{
#ifexist: {{{1|{{Dokumentacja/nazwa}}}}}
|<!-- /doc exists -->Powyższy [[w:Pomoc:Schemat opisu szablonu|opis]] jest [[w:Pomoc:Transkluzja|dołączany]] ze strony [[{{{1|{{Dokumentacja/nazwa}}}}}]]. <small style="font-style: normal;">([{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=edit}} edytuj] {{!}} [{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=history}} historia])</small><br />
}}
|<!-- transcluded hide -->
}}{{
#switch: {{SUBPAGENAME}}
|brudnopis=<!-- sandbox -->
|test=<!-- testcases -->
|#default={{
#switch: {{SUBJECTSPACE}}/{{{sandbox-testcases|show}}}
| {{ns:template}}/show | {{ns:user}}/show | {{ns:module}}/show =<!-- show /sandbox /testcases -->{{
#ifexist: {{ #rel2abs: /brudnopis }}
| Edytorzy mogą eksperymentować w [[/brudnopis|brudnopisie]] <small style="font-style: normal;">([{{fullurl:{{ #rel2abs: /brudnopis }}|action=edit}} edytuj] {{!}} [{{fullurl:Specjalna:Porównywanie stron|page1={{FULLPAGENAMEE}}&page2={{FULLPAGENAMEE}}/brudnopis}} różnice])</small> {{
#ifexist: {{ #rel2abs: /test }}
|<!-- /sandbox AND /testcases --> i na stronach [[/test|testowych]] <small style="font-style: normal;">([{{fullurl:{{ #rel2abs: /test }}|action=edit}} edytuj])</small> tego
| tego<!-- /sandbox BUT no /testcases -->}} {{#switch: {{NAMESPACE}} | Moduł = modułu | szablonu}}.<br />
|<!-- no /sandbox -->{{
#ifexist: {{ #rel2abs: /test }}
| Edytorzy mogą eksperymentować na stronach [[/test|testowych]] <small style="font-style: normal;">([{{fullurl:{{ #rel2abs: /test }}|action=edit}} edytuj])</small> tego {{#switch: {{NAMESPACE}} | Moduł = modułu | szablonu}}.<br />
}}
}}
|<!-- hide /sandbox /testcases -->
}}
}}
{{#switch: {{NAMESPACE}} | Szablon = {{#ifexist: {{FULLPAGENAME}}/opis|Kategorie należy dodawać do podstrony [[{{FULLPAGENAME}}/opis|/opis]]. }}Zobacz [[Specjalna:Strony według prefiksu/{{#ifexist: {{#rel2abs: ../.}}|{{#rel2abs: ../.}}|{{FULLPAGENAME}}}}/|podstrony tego szablonu]]. | Moduł = Zobacz [[Specjalna:Strony według prefiksu/{{#ifexist: {{#rel2abs: ../.}}|{{#rel2abs: ../.}}|{{FULLPAGENAME}}}}/|podstrony tego modułu]].}}</div>
</td></tr></table>}}}}
m5kfy67tlwbwj97btokg1zca34j8jpm
437524
437521
2022-08-12T05:34:59Z
Persino
2851
wikitext
text/x-wiki
<templatestyles src="Szablon:Dokumentacja/styles.css" /><templatestyles src="Szablon:Fmbox/styles.css" /><templatestyles src="Szablon:Mbox/styles.css" />
<div class="template-documentation" style="padding: 14px;">{{
#if: {{{nagłówek|Dokumentacja}}}
|<div style="padding-bottom: {{{heading-padding|3px}}}; border-bottom: 1px solid #aaa; margin-bottom: {{{margines nagłówka|1ex}}}"><span style="{{{styl nagłówka|font-size: 125%; font-weight: 600;}}}">[[Plik:Template-info.png|50px]] {{{nagłówek|Dokumentacja{{#switch: {{NAMESPACE}}|Szablon= szablonu|Moduł= modułu|#default=}}}}}</span>
<span class="plainlinks" id="doc_editlinks" style="margin-left: 1em; font-size: 90%;">{{
#ifexist: {{{1|{{Dokumentacja/nazwa}}}}}
|<!-- /opis istnieje -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}}} zobacz]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=edit}} edytuj]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=history}} historia]] [{{odśwież|odśwież}}]
|<!-- nie ma /opis -->{{
#if: {{{zawartość|}}}
|[{{odśwież|odśwież}}]
|<!-- no content -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa }}}}}|action=edit&preload={{{preload opisu|Szablon:Dokumentacja/preload}}}}} stwórz]] [{{odśwież|odśwież}}]
}}
}}</span></div>
}}<!-- endif heading -->
<div class="main_scrollbar_documentation mw-overflow-x" style="overflow-x:auto;"><div class="documentation_content" style="min-width:fit-content;width:100%;">{{{zawartość|{{ {{ #ifexist: {{{1|{{Dokumentacja/nazwa}}}}} | {{{1|{{Dokumentacja/nazwa}}}}} | ns:0 }} }}}}}</div></div></div>
{{#switch: {{{okno linków}}}|nie=|tak|#default={{#if:{{{zawartość|}}}||<table id="documentation-meta-data" class="plainlinks fmbox fmbox-system" role="presentation" style="background-color: #ecfcf4">
<tr>
<td class="mbox-text" style="font-style: italic">
<div id="template_doc_page_transcluded" class="plainlinks" style="font-style:italic;">{{
#ifeq: {{{transcluded|show}}} | show
|<!-- transcluded show -->{{
#ifexist: {{{1|{{Dokumentacja/nazwa}}}}}
|<!-- /doc exists -->Powyższy [[w:Pomoc:Schemat opisu szablonu|opis]] jest [[w:Pomoc:Transkluzja|dołączany]] ze strony [[{{{1|{{Dokumentacja/nazwa}}}}}]]. <small style="font-style: normal;">([{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=edit}} edytuj] {{!}} [{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=history}} historia])</small><br />
}}
|<!-- transcluded hide -->
}}{{
#switch: {{SUBPAGENAME}}
|brudnopis=<!-- sandbox -->
|test=<!-- testcases -->
|#default={{
#switch: {{SUBJECTSPACE}}/{{{sandbox-testcases|show}}}
| {{ns:template}}/show | {{ns:user}}/show | {{ns:module}}/show =<!-- show /sandbox /testcases -->{{
#ifexist: {{ #rel2abs: /brudnopis }}
| Edytorzy mogą eksperymentować w [[/brudnopis|brudnopisie]] <small style="font-style: normal;">([{{fullurl:{{ #rel2abs: /brudnopis }}|action=edit}} edytuj] {{!}} [{{fullurl:Specjalna:Porównywanie stron|page1={{FULLPAGENAMEE}}&page2={{FULLPAGENAMEE}}/brudnopis}} różnice])</small> {{
#ifexist: {{ #rel2abs: /test }}
|<!-- /sandbox AND /testcases --> i na stronach [[/test|testowych]] <small style="font-style: normal;">([{{fullurl:{{ #rel2abs: /test }}|action=edit}} edytuj])</small> tego
| tego<!-- /sandbox BUT no /testcases -->}} {{#switch: {{NAMESPACE}} | Moduł = modułu | szablonu}}.<br />
|<!-- no /sandbox -->{{
#ifexist: {{ #rel2abs: /test }}
| Edytorzy mogą eksperymentować na stronach [[/test|testowych]] <small style="font-style: normal;">([{{fullurl:{{ #rel2abs: /test }}|action=edit}} edytuj])</small> tego {{#switch: {{NAMESPACE}} | Moduł = modułu | szablonu}}.<br />
}}
}}
|<!-- hide /sandbox /testcases -->
}}
}}
{{#switch: {{NAMESPACE}} | Szablon = {{#ifexist: {{FULLPAGENAME}}/opis|Kategorie należy dodawać do podstrony [[{{FULLPAGENAME}}/opis|/opis]]. }}Zobacz [[Specjalna:Strony według prefiksu/{{#ifexist: {{#rel2abs: ../.}}|{{#rel2abs: ../.}}|{{FULLPAGENAME}}}}/|podstrony tego szablonu]]. | Moduł = Zobacz [[Specjalna:Strony według prefiksu/{{#ifexist: {{#rel2abs: ../.}}|{{#rel2abs: ../.}}|{{FULLPAGENAME}}}}/|podstrony tego modułu]].}}</div>
</td></tr></table>}}}}
ija0l27ga9cvd0gmzmh1txbnbklsdme
Szablon:Dokumentacja/styles.css
10
33615
437522
349132
2022-08-12T05:32:15Z
Persino
2851
sanitized-css
text/css
.template-documentation {
background-color:#ECFCF4;
border:1px solid #a2a9b1;
clear:both;
margin:1em 0pt 0pt;
padding:5px;
}
.template-documentation .main_scrollbar_documentation.mw-overflow-x{
padding-bottom:1em;
}
cnxdapvcfjza8x9pcw31h60ovp1pe32
437523
437522
2022-08-12T05:33:17Z
Persino
2851
sanitized-css
text/css
.template-documentation {
background-color:#ECFCF4;
border:1px solid #a2a9b1;
clear:both;
margin:1em 0pt 0pt;
padding:5px;
}
.template-documentation .main_scrollbar_documentation.mw-overflow-x{
padding-bottom:5px;
}
jfyyrvsw3h9wa62hh1nuqbe8r1nk2i8
437525
437523
2022-08-12T05:46:56Z
Persino
2851
sanitized-css
text/css
.template-documentation {
background-color:#ECFCF4;
border:1px solid #a2a9b1;
clear:both;
margin:1em 0pt 0pt;
padding:5px;
}
.template-documentation .main_scrollbar_documentation.mw-overflow-x.mw-scrollbar-overflow-x{
padding-bottom:5px;
}
o4ekqlvfdxkbth62ouh8m6a87oxmuim
437526
437525
2022-08-12T05:47:43Z
Persino
2851
sanitized-css
text/css
.template-documentation {
background-color:#ECFCF4;
border:1px solid #a2a9b1;
clear:both;
margin:1em 0pt 0pt;
padding:5px;
}
.template-documentation > .main_scrollbar_documentation.mw-overflow-x.mw-scrollbar-overflow-x{
padding-bottom:5px;
}
qmlj8el5bqr6sc8yt90rrd1w2lushon
Moduł:StronicowyParser
828
34347
437456
437449
2022-08-11T12:49:19Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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)
local tab_dane_ksiazki=nil;
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;
if(not tab_dane_ksiazki[rozdzial][artykul])then tab_dane_ksiazki[rozdzial][artykul]={};end;
table.insert(tab_dane_ksiazki[rozdzial][artykul],{tab_numer,tab_poziomowo,});
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
0mkfy21mm6v3gebi1d22gqv7updzffh
437457
437456
2022-08-11T13:15:08Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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)
local tab_dane_ksiazki=nil;
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;
if(not tab_dane_ksiazki[rozdzial][1])then tab_dane_ksiazki[rozdzial][1]={};end;
table.insert(tab_dane_ksiazki[rozdzial][1],tab_numer);
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
table.insert(tab_dane_ksiazki[rozdzial][2][artykul],tab_poziomowo);
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
5exwtzlwf3gt54cyz8q4taicrbetln1
437458
437457
2022-08-11T13:55:58Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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_json)
local tab_dane_ksiazki=nil;
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;
if(not tab_dane_ksiazki[rozdzial][1])then tab_dane_ksiazki[rozdzial][1]={};end;
table.insert(tab_dane_ksiazki[rozdzial][1],tab_numer);
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
table.insert(tab_dane_ksiazki[rozdzial][2][artykul],tab_poziomowo);
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return kodowanie_json and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
inkpxlxsqhlvcxjjgrt5fgilkc710vs
437459
437458
2022-08-11T14:00:00Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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 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;
if(not tab_dane_ksiazki[rozdzial][1])then tab_dane_ksiazki[rozdzial][1]={};end;
table.insert(tab_dane_ksiazki[rozdzial][1],tab_numer);
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
table.insert(tab_dane_ksiazki[rozdzial][2][artykul],tab_poziomowo);
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
sx0uzk2xddkf04uwja178pd9msl8vse
437468
437459
2022-08-11T15:56:32Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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 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;
tab_dane_ksiazki[rozdzial][1]=table.concat(tab_numer,".");
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
tab_dane_ksiazki[rozdzial][2][artykul]=table.concat(tab_poziomowo,".");
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
local parametry_modul=require("Module:Parametry");
return (not kodowanie_nie_json) and parametry_modul["ZamieńTablicęLuaNaŁańcuchJSON"](tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
8mkmw1y7ummd4epj9sms4dt7tplejft
437470
437468
2022-08-11T16:16:52Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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 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;
tab_dane_ksiazki[rozdzial][1]=table.concat(tab_numer,".");
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
tab_dane_ksiazki[rozdzial][2][artykul]=table.concat(tab_poziomowo,".");
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
8s2skfkdyobsie9xt7lq5dq65l97283
437472
437470
2022-08-11T16:41:01Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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 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;
if(not tab_dane_ksiazki[rozdzial][1])then tab_dane_ksiazki[rozdzial][1]=table.concat(tab_numer,".");end;
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
tab_dane_ksiazki[rozdzial][2][artykul]=table.concat(tab_poziomowo,".");
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
8egce06409bhonetuman3q6r8sghl0t
437473
437472
2022-08-11T17:04:43Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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 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;
if(not tab_dane_ksiazki[rozdzial][1])then tab_dane_ksiazki[rozdzial][1]={};end;
tab_dane_ksiazki[rozdzial][1][table.concat(tab_numer,".")]=true;
if(not tab_dane_ksiazki[rozdzial][2])then tab_dane_ksiazki[rozdzial][2]={};end;
if(not tab_dane_ksiazki[rozdzial][2][artykul])then tab_dane_ksiazki[rozdzial][2][artykul]={}; end;
tab_dane_ksiazki[rozdzial][2][artykul][table.concat(tab_poziomowo,".")]=true;
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
lqf2g3u66uhk6ih3ieh42dzpqyeybhd
437474
437473
2022-08-11T17:21:25Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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;
if(not tab_dane_ksiazki[rozdzial][table.concat(tab_numer,".")])then
tab_dane_ksiazki[rozdzial][table.concat(tab_numer,".")]={};
end;
if(not tab_dane_ksiazki[rozdzial][table.concat(tab_numer,".")][artykul])then
tab_dane_ksiazki[rozdzial][table.concat(tab_numer,".")][artykul]={};
end;
tab_dane_ksiazki[rozdzial][table.concat(tab_numer,".")][artykul][table.concat(tab_poziomowo,".")]=s;
s=s+1;
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
o56jelsotszkaoydk1ihzz7lzzri0qo
437475
437474
2022-08-11T17:31:32Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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;
local numer_rozdzialu=table.concat(tab_numer,".");
if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end;
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=table.concat(tab_poziomowo,".");
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);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
jxaph01883lp6kysyl0ka50tah7vv59
437476
437475
2022-08-11T17:33:27Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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=table.concat(tab_numer,".");
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=table.concat(tab_poziomowo,".");
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);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
5m0emvrstemd77sz0x2puaz516ch68k
437491
437476
2022-08-11T20:00:31Z
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];
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,__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 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 artykuly_w_rozdziale=nil;
local spis_tresci_zerowy;
local poziom_zerowy;
local rozdzial;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>0)))and(poziom_znakowy_rozdzialu<0))then
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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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);
poziom_artykulu=poziom_artykulu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka;
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_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,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;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
return;
end;
p["PobierzNazwęArtykułu"]=function(frame)
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,numer,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,__FUNKCJA,true);
end;
p["PobierzNumerArtykułu"]=function(frame)
local s=1;
local function __FUNKCJA(poziomowo,i,ktory,nazwa_artykulu,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,__FUNKCJA,false);
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
p5oq5x9ojcvsgh0wo3ea7mxk1l6oeyi
437492
437491
2022-08-11T20:01:12Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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=table.concat(tab_numer,".");
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=table.concat(tab_poziomowo,".");
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);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
5m0emvrstemd77sz0x2puaz516ch68k
437543
437492
2022-08-12T07:46:18Z
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];
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)
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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;
end;
else
poprzedni_tab_poziomowo=nil;
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=table.concat(tab_numer,".");
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=table.concat(tab_poziomowo,".");
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);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
aliwmv32jx5mv09li29pvqsog0h1jju
437549
437543
2022-08-12T08:36:20Z
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];
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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=table.concat(tab_numer,".");
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=table.concat(tab_poziomowo,".");
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu]={};
end;
table.insert(tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu],s);
s=s+1;
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
bfcjy2o2escb6hr80te7snmvzzbtl20
437568
437549
2022-08-12T10:20:21Z
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];
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
--table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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=table.concat(tab_numer,".");
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=table.concat(tab_poziomowo,".");
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu]={};
end;
table.insert(tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu],s);
s=s+1;
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
6nykpkidsoxyr6blchc13yl1e3vm1h3
437570
437568
2022-08-12T11:19:37Z
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];
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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=table.concat(tab_numer,".");
--repeat
-- numer_rozdzialu=mw.ustring.gsub(numer_rozdzialu,"%.0$","")
--until 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=table.concat(tab_poziomowo,".");
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu]={};
end;
table.insert(tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu],s);
s=s+1;
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
plbmqfm00plusog7vjs9o44ka4lv21l
437571
437570
2022-08-12T11:20:52Z
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];
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;
if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then
rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1];
rozdzial,_=mw.ustring.gsub(rozdzial,"'+","");
spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];
poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1];
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
poziom_rozdzialu=tab_lista[1][2][1];
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_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;
else
numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1);
glowny_ujemny_rozdzial=false;
end;
else
if((m>1)or((m==1)and(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][1]>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]>0)then
if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then
return true;
else
return false;
end;
end;
end;
end;
return true;
end;
local id=nil;
if(tab_lista_artykulow_w_ksiazce[m][2])then
for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do
id=tab_lista_artykulow_w_ksiazce[m][2][p][4];
if(id)then
break;
end;
end;
end;
if((poziom_znakowy_rozdzialu>0)and((id)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((id)or((tab_lista_artykulow_w_ksiazce[m+1])
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)then
if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=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]>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]<=0)then
local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1];
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])+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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
((poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu)
)
)or(
(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=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(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then
tab_numer={};
elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then
tab_numer={0,}
elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>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]>0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)--[[or(
(poziom_znakowy_rozdzialu<0)
and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0)
and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu)
)]])
)then
table.insert(tab_numer,0);
end;
-- end;
end;
if(tab_lista[2])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
if((w_rozdziale)and(not tab_lista[2][p+1]))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{});
if(wartosc)then return wartosc;end;
end;
function Dalej()
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;
if(Dalej())then
tab_numer[#tab_numer+1]=0;
artykuly_w_rozdziale=true;
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=table.concat(tab_numer,".");
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=table.concat(tab_poziomowo,".");
if(not tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu])then
tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu]={};
end;
table.insert(tab_dane_ksiazki[rozdzial][numer_rozdzialu][artykul][numer_artykulu],s);
s=s+1;
return false;
end;
PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true);
return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki;
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local ostatni_artykul;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if(type(artykul_w_bazie[1])~="table")then
if(artykul_w_bazie[1]==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1];
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local techniczne_modul=require("Module:Techniczne");
local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(uzupelniaj_sekcje_artykulow)then
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
if(numer_rozdzialu>0)then
if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")
..linki_modul["Link wewnętrzny"]{
["strona"]=pelna_nazwa_ksiazki,
["nagłówek"]=rozdzial,
["nazwa"]=rozdzial,
["bez znaczników"]=args["bez znaczników"],
["bez przetwarzania"]=args["bez przetwarzania"],
};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local 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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
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);
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;
fybb1fkv9rbrw0kbrj6xev6ggalkbch
Wikipedysta:Persino/brudnopis
2
44693
437460
437447
2022-08-11T14:27:34Z
Persino
2851
wikitext
text/x-wiki
{{#invoke:Linki|UzyskajKodWikiLinku|strona=|wyspecjalizowana=tak}}
{{Brudnopis/Persino/SzablonSubst|nazwa=Przetłumaczony|postęp=tak|kod języka{{=}}en|kod projektu{{=}}w|Statistical physics}}
==Spis treści==
* [[/Alfabet/]]
* [[/Głoski///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////]]
* [[/Przypadki/]]
{{Nowiki|{{PobierzNumerArtykułu|Głoski|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikipedysta:Persino/brudnopis/Głoski}}}}
----
{{#invoke:Łatki|są interwiki|nazwa=Wikipedia:Strona główna|kod projektu=w|kod języka=pl|wyspecjalizowana=tak}}
-----
==Spis treści==
** {{kompletność junior|2|17.03.2012}} [[Wikipedysta:Persino/brudnopis/Bałtowie|Bałtowie]] , {{kompletność junior|3|20.10.2020}} [[Wikipedysta:Persino/brudnopis/Celtowie|Celtowie]]
** {{kompletność junior|3|20.13.2112}} [[Wikipedysta:Persino/brudnopis/Bałtowie2|Bałtowie2]]
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Bałtowie}}}}
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Celtowie}}}}
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Bałtowie2}}}}
----
Następny: {{NastępnyArtykuł|1|nagłówek=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
Poprzedni: {{PoprzedniArtykuł|1|nagłówek=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
Następny: {{NastępnyArtykuł|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
Poprzedni: {{PoprzedniArtykuł|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie#Dlaczego warto to mieć na swoim twardzielu}}
{{SubNazwaNadArtykułu|1|2|nazwa przestrzeni nazw=(main)|nazwa jednostki=Uciążliwość zapachowa/Węch człowieka/Receptory węchowe i kodowanie zapachu}}
{{LiczbaArtykułówKsiążki|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie}}
{{PobierzNazwęArtykułu|5|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Borland C++ Compiler/Wprowadzenie}}
{{PobierzNumerArtykułu|Widłakowate|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Widłakowate}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Poryblinowate}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Uciążliwość zapachowa/Węch człowieka/Receptory węchowe i kodowanie zapachu}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
{{#invoke:Linki|UzyskajKodWikiLinku|strona=|wyspecjalizowana=tak}}
{{PreNowiki|{{#invoke:StronicowyParser/Rozdziały|TekstRozdzialuStrony|Statystyka matematyczna/Średnie w matematyce statystycznej||Średnia arytmetyczna}}}}
{{PreNowiki|{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|Matematyka dla liceum|Funkcja wykładnicza i logarytmiczna}}}}
{{PobierzNazwęArtykułu|1|nagłówek=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Statystyka matematyczna/Średnie w matematyce statystycznej}}
{{PreNowiki|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Autorzy|analiza=tak|wyspecjalizowana=tak}}}}
{{PreNowiki|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja|analiza=tak|wyspecjalizowana=tak}}}}
=='''tytan'''==
[[wikibooks:Strona główna]]
{{PobierzNumerArtykułu|Zaczynamy/Zbiory|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
{{PobierzNazwęArtykułu|2.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Zaczynamy/Rozwiązywanie równań i nierówności|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
{{PobierzNazwęArtykułu|2.3|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Logika/Zdanie|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
{{PobierzNazwęArtykułu|3.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Postulaty szczególnej teorii względności i rodzaje układów|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Szczególna teoria względności/Postulaty szczególnej teorii względności i rodzaje układów}}
{{PobierzNazwęArtykułu|1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Szczególna teoria względności/Postulaty szczególnej teorii względności i rodzaje układów}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
{{PobierzNazwęArtykułu|2.2|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
----
{{PobierzNumerArtykułu|Ewolucja człowiekowatych w miocenie i pliocenie|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|1.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Mezopotamia - wstęp|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|2.1.1|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Źródła historyczne|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|0.2|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Władcy Izraela|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|2.3.1.1|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerArtykułu|Majowie|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
{{PobierzNazwęArtykułu|2.9.3.2|poziomowo=tak|bez automatu=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Ewolucja człowiekowatych w miocenie i pliocenie}}
----
{{PobierzNumerNagłówka|Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory}}
----
{{PobierzNumerArtykułu|Celtowie|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Celtowie}}
{{PobierzNazwęArtykułu|0.2|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Celtowie}}
{{PobierzNumerArtykułu|Schemat|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Celtowie}}
----
{{PobierzNumerArtykułu|Cyrkiel i linijka|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Matematyka/Cyrkiel i linijka}}
----
{{PobierzNumerArtykułu|Jak się uczyć, by się nauczyć?|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Angielski/Jak się uczyć, by się nauczyć?}}
----
{{Nowiki|{{LiniaArtykułuKsiążki|nazwa przestrzeni nazw=Wikipedysta|nazwa jednostki=Persino/brudnopis/Bałtowie}}}}
----
{{LinkURL|strona=/w/index.php?title=Angielski/Jak_si%C4%99_uczy%C4%87,_by_si%C4%99_nauczy%C4%87%3F&action=edit&section=1|nazwa=tutan}}
{{LinkURL|strona=https://upload.wikimedia.org/wikibooks/pl/a/a0/2004zad28rys1.gif|nazwa=Pomoc dla użytkowników angielskiej Wikipedii}}
----
{{PobierzNumerArtykułu|Macierze|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Algebra liniowa/Macierze}}
----a
{{PobierzNumerArtykułu|O podręczniku|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=C++/O podręczniku}}
----a
{{PobierzNumerArtykułu|Anioł pasterzom mówił|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Śpiewnik/Anioł pasterzom mówił}}
----Chemia organiczna
{{PobierzNumerArtykułu|Koordynacja|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----a
{{PobierzNumerArtykułu|Węglowodory|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----
{{PobierzNumerArtykułu|Aneks|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----
{{PobierzNumerArtykułu|Słownik pojęć|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}}
----
{{PobierzNumerArtykułu|Egipcjanie|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Ludzie paleolitu}}
----
{{PobierzNumerArtykułu|Bibliografia|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Bibliografia}}
----
{{PobierzNumerArtykułu|Rachunek różniczkowy|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza matematyczna/Rachunek różniczkowy}}
----
: {{s|PobierzNumerNagłówka|Starożytny Rzym|który{{=}}1}} → {{PobierzNumerNagłówka|Starożytny Rzym|który=1|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Źródła historyczne}}.
* Z wielopoziomową pozycją artykułu
: {{s|PobierzNumerNagłówka|Starożytny Rzym|poziomowo{{=}}tak|który{{=}}1}} → {{PobierzNumerNagłówka|Starożytny Rzym|poziomowo=tak|który=1|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Źródła historyczne}}.
{{LinkURL|strona=https://upload.wikimedia.org/wikipedia/commons/a/aa/Tetrahedron_grey.svg}}
----
{{PobierzNumerArtykułu|Wymowa|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fiński/Wymowa}}
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wymowa|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fiński/Wymowa|wyspecjalizowana=tak}}
bnj7w7z4qd9ikp59a7cs4ihd548auuu
Moduł:Parametry
828
45669
437461
422661
2022-08-11T15:18:55Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
function Krok(tab)
local str="{";
for name,value in pairs(tab)do
str=((str~="")and ", " or "")..name..':'+Krok(value);
end;
str=str.."}";
return str;
end;
return Krok(tab);
end;
return p;
mznju4t8ihbtnt2zmz9ocfl2xd3wpsw
437462
437461
2022-08-11T15:22:01Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
function Krok(tab)
local str="{";
for name,value in pairs(tab)do
str=((str~="")and ", " or "")..name..':'..(p.TypeTable(value) and Krok(value) or value);
end;
str=str.."}";
return str;
end;
return Krok(tab);
end;
return p;
0rz5hmj0lws8xklrlqz521nmocrntyf
437463
437462
2022-08-11T15:23:43Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
if(not tabelka)then return "[]";end;
function Krok(tab)
local str="{";
for name,value in pairs(tab)do
str=((str~="")and ", " or "")..name..':'..(p.TypeTable(value) and Krok(value) or value);
end;
str=str.."}";
return str;
end;
return Krok(tab);
end;
return p;
bl12k57c6t1op6n3rvp5x0k65vdkqxp
437464
437463
2022-08-11T15:26:48Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
if(not tabelka)then return "[]";end;
function Krok(tab)
local str="{";
for name,value in pairs(tab)do
str=((str~="")and ", " or "")..name..':'..(p.TypeTable(value) and Krok(value) or value);
end;
str=str.."}";
return str;
end;
return Krok(tabelka);
end;
return p;
t0dtu5rkjmh5iy7dpks20gy0af32hzf
437465
437464
2022-08-11T15:33:21Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
if(not tabelka)then return "[]";end;
function Krok(tab)
local str="{";
for name,value in pairs(tab)do
function StringWartosc(wartosc)
if(p.TypeString(wartosc))then return "\""..wartosc.."\"";end;
return wartosc;
end;
str=((str~="")and (str..", ") or "")..StringWartosc(name)..':'..(p.TypeTable(value) and Krok(value) or StringWartosc(value));
end;
str=str.."}";
return str;
end;
return Krok(tabelka);
end;
return p;
p4eupotd3cic7ix92wbu0c9pg4dxvri
437466
437465
2022-08-11T15:35:56Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
if(not tabelka)then return "[]";end;
function Krok(tab)
local str="";
for name,value in pairs(tab)do
function StringWartosc(wartosc)
if(p.TypeString(wartosc))then return "\""..wartosc.."\"";end;
return wartosc;
end;
str=((str~="")and (str..", ") or "")..StringWartosc(name)..':'..(p.TypeTable(value) and Krok(value) or StringWartosc(value));
end;
if(str=="")then return "[]";else return"{"..str.."}";end;
end;
return Krok(tabelka);
end;
return p;
m7co91osrv7lc5bowhlb45lgik9vjf2
437467
437466
2022-08-11T15:37:27Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
if(not tabelka)then return "[]";end;
function Krok(tab)
local str="";
for name,value in pairs(tab)do
function StringWartosc(wartosc)
if(p.TypeString(wartosc))then return "\""..wartosc.."\"";end;
return wartosc;
end;
str=((str~="")and (str..", ") or "").."\""..name.."\""..': '..(p.TypeTable(value) and Krok(value) or StringWartosc(value));
end;
if(str=="")then return "[]";else return"{"..str.."}";end;
end;
return Krok(tabelka);
end;
return p;
r5njmp5vb47o7lq3kr0ohgdo16f9kse
437469
437467
2022-08-11T16:05:13Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p["ZamieńTablicęLuaNaŁańcuchJSON"]=function(tabelka)
if(not tabelka)then return "[]";end;
function Krok(tab)
local str="";
for name,value in pairs(tab)do
function StringWartosc(wartosc)
if(p.TypeString(wartosc))then return "\""..mw.ustring.gsub(wartosc,"\"","\\\"").."\"";end;
return wartosc;
end;
str=((str~="")and (str..", ") or "").."\""..name.."\""..': '..(p.TypeTable(value) and Krok(value) or StringWartosc(value));
end;
if(str=="")then return "[]";else return"{"..str.."}";end;
end;
return Krok(tabelka);
end;
return p;
n3xk2m1wptxaadxxre4gungydmvb899
437471
437469
2022-08-11T16:17:17Z
Persino
2851
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
local zmienna=przedrostek.._1 ;
local element=tabela[zmienna] or tabela[_1];
if(element)then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or 0;
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=(liczba>0)and liczba or 1;
else
liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
end;
elseif(nazwa_parametru_okreslona==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,1);
if(not liczba_minimum)then
liczba_minimum=1;
else
liczba_minimum=math.min(liczba_minimum,1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
local czy_puste_wliczac=p.CzyTak(wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return "";
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
for name,value in pairs(args.tabela)do
if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
local function kopiuj(tabelka)
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
if(type(value)=="table")then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
if(not p.CzyTak(nazwa))then return nazwa;end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
if(p.CzyTak(czy))then
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
table.insert(tabela,value);
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezElementówTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(frame)
return (type(frame)=="table");
end;
function p.TypeFunction(frame)
return (type(frame)=="function");
end;
function p.TypeString(frame)
return (type(frame)=="string");
end;
function p.TypeBoolean(frame)
return (type(frame)=="boolean");
end;
function p.TypeNumber(frame)
return (type(frame)=="number");
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(frame)
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna=PobierzParametr("zmienna") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
if(zmienna~=nil)then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
return p.TypeTable(frame) and (p.PobierzFrameEwentualnieParent(frame).args or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
local __pobierz_parametr_nie_table_nie_args=nil;
local __pobierz_parametr_parent_lub_frame=nil;
local function PobierzParametrFrameLubParent(name)
return frame.args[name or 1] or (frame:getParent() and frame:getParent().args[name or 1] or nil);
end;
return function(name)
if(__pobierz_parametr_table_args)then
return __pobierz_parametr_table_args[name or 1],1;
elseif(__pobierz_parametr_nie_table_nie_args)then
return nil,0;
elseif(__pobierz_parametr_parent_lub_frame)then
return PobierzParametrFrameLubParent(name),2;
end;
if(frame)then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local tak_frame=p.CzyTak(czy_frame);
__pobierz_parametr_table_args=tak_frame and frame.args or p.PobierzArgsParametry(frame);
return __pobierz_parametr_table_args[name or 1],1;
elseif(tak_frame_lub_parent)then
__pobierz_parametr_parent_lub_frame=true;
return PobierzParametrFrameLubParent(name),2;
end;
else
__pobierz_parametr_nie_table_nie_args=true;
return frame,0;
end;
else
return nil,0;
end;
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
end;
return czy and "tak" or nil;
end;
function p.Or(frame)
local czy=nil;
local parametry_modul=require("Module:Parametry");
for _,wartosc in ipairs(frame.args)do
czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
if(czy)then return "tak";end;
end;
return czy and "tak" or nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
return p;
cwidjhbrvjmytwuyesjn9kl8suvwqlo
Wikipedysta:Persino/Gadget-StronicowyParser.js/StronaSubst.js
2
58130
437478
437351
2022-08-11T19:17:11Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.WyswietlStronyKsiazki=async function(){
await StronicowyParser.muteks.zablokuj();
let stronasubst_latex=undefined;
let stronasubst_mathml=undefined;
let stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
let stronasubst_ukrywaj_toc=undefined;
let stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
let stronasubst_aktualizowanie_nazw_artykulow=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
let stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
let stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
let stronasubst_nie_usuwaj_styli=undefined;
let stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'Strona zbiorcza',
'StronaSubst-description-page': 'Wikibooks:StronicowyParser/StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
{
name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
},
{
name: 'aktualizowanie_nazw_artykulow',
desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
},
{
name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
},
{
name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
},
{
name: 'nie_usuwaj_styli',
desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
},
{
name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
let stronasubst_tablica_tych_samych=new Array();
let stronasubst_tablica_rozdzialow=new Array();
let stronasubst_tablica_alternatywnych_nazw=new Array();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
async function AnalizujDalejSzablonSubst(element_strony,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let rozdzial_ksiazki="rozdział_książki";
let el=$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((el!==null)&&(el.length>0)){
for(let i=0;i<el.length;++i){
let element_el=el[i];
let ksiazka=element_el.querySelector("."+rozdzial_ksiazki);
if(ksiazka){
let nazwa_strony=element_el.getAttribute('nazwa_strony');
if(tab_promise2){tab_promise2.push(true);}
CzyStronaSubst(element_el,nazwa_strony,tab_promise2);
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
async function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let title=data.parse.title;
let wikikod=data.parse.text['*'];
let strona_hash;
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let t=tab_uzyskane[0];
if(t==undefined){
console.log("Nie wykryto znacznika lsth_\d+.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
strona_hash=titles[t];
let selflink=document.createElement('div');
selflink.innerHTML=wikikod;
let czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
let elements=tabstrona[strona_hash];
let a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(title));
a.innerHTML=strona_hash;
let span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","niw link");/*Dodawanie klasy, by inny skript JS to przeanalizował jako link*/
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo(span);
}
for(let q in elements){
let element=elements[q];
element.innerHTML="";
element.appendChild(span);
$(element).wrap(function(){return "<strong></strong>";});
let przed=document.createTextNode("{{:");
let po=document.createTextNode("}}");
element.insertBefore(przed,element.firstChild);
element.appendChild(po);
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=tab_uzyskane[1].innerHTML;
let elements=tabstrona[strona_hash];
for(let q in elements){
let element=elements[q];
element.innerHTML=wikikod;
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element,title,titles);
}
StronicowyParser.AktualizujSpisTresciModuluStrony(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml)
let strona_start=$(elements[0]).parents(".strona_start");
let rodzic=undefined;
if((strona_start!==null)&&(strona_start.length>0)){
rodzic=strona_start[0];
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,true);
for(let q in elements){
let element=elements[q];
async function ElementDalszychObliczen(element,tab_promise2){
await StronicowyParser.muteks.zablokuj(true);
StronicowyParser.PoprawRozdzialyStron(element);
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise2);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element,tab_promise2);
}
if((StronicowyParser.szablony&&StronicowyParser.szablony.LadujSzablon)&&(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst)){
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(element,title,titles,undefined,tab_promise).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(()=>{
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
ElementDalszychObliczen(element,tab_promise2);
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function ToogleTableOfContainer(panel){
let id=panel.target;
let tagname=id.tagName.toUpperCase();
//console.log(czy_klasa,tagname,"TYTAN)";
if(tagname=="BUTTON"){
let czy_klasa_1=$(id).hasClass('sidebar-toc-toggle');
let czy_klasa_2=$(id).hasClass('vector-toc-collapse-button');
if(czy_klasa_1){
$(id).parent().children().last().each((i,element)=>{
let expanded=$(id).attr('aria-expanded');
if(expanded=="false"){
$(element).css('display',"block");
$(element).closest('li').addClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','true');
}else if(expanded=="true"){
$(element).css('display',"none");
$(element).closest('li').removeClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','false');
}
});
}else if(czy_klasa_2){
$(id).parents('#sidebar-toc-label').siblings('ul').each((i,element)=>{
let ukryj=$(element).css('display');
if(ukryj!="none"){
$(element).css('display',"none");
id.innerHTML=" pokaż ";
}else{
$(element).css('display',"block");
id.innerHTML=" ukryj "
}
});
}
}
}
let mutekstoogle=new StronicowyParser.Muteks();
async function ScrollTableOfContainer(){
await mutekstoogle.zablokuj();
var height_sticky=0;
$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').first().each(function(i,el){
var rect_sticky=el.getBoundingClientRect();
height_sticky=rect_sticky.height-15;
});
let parser=document.querySelector('#mw-content-text .mw-parser-output');
if(parser){
let rect=parser.getBoundingClientRect();
if(rect.top>=height_sticky){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item').first().addClass('sidebar-toc-list-item-active');
mutekstoogle.odblokuj();
return;
}
}else{
mutekstoogle.odblokuj();
return;
}
var str=$('#mw-content-text .mw-parser-output').find('h1, h2, h3, h4, h5, h6');
if((str!==null)&&(str.length>0)){
var naglowek;
for(i=0;i<str.length;++i){
let element=str[i];
let rect=element.getBoundingClientRect();
if(rect.top>=height_sticky){
let mw_naglowek=element.querySelector('.mw-headline');
if(mw_naglowek){
let id_naglowek=mw_naglowek.getAttribute('id');
let tak=false;
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+id_naglowek){
let display=window.getComputedStyle(element, null).getPropertyValue('display');
if(display!="none"){
tak=true;
}
}
});
if(tak){
naglowek=id_naglowek;
break;
}
}
}
}
if(naglowek){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+naglowek){
$(element).addClass('sidebar-toc-list-item-active');
}
});
}
}
mutekstoogle.odblokuj();
}
async function StronaSubst(element_strony,wikikod,aktualna_strona,tab_promise2){
await StronicowyParser.muteks.zablokuj();
StronicowyParser.NaprawNaglowkiStrony(element_strony,true);
let czy_wikikod=wikikod.match(/^[_\s]*$/g);
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
function CzyWszystkieNaglowkiWewnatrzStronaStart(){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return false;
}
}
return true;
}
if(czy_wikikod){
StronicowyParser.muteks.odblokuj();
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
let czy_numerowac=StronicowyParser.CzyWlaczycSideBarTOC(undefined,true);
if(czy_numerowac){
czy_numerowac=false;
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+StronicowyParser.pageinfo.fullname+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
czy_numerowac=true;
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
let tab_promise=new Array(true);
StronicowyParser.LimitTOC(czy_numerowac,stronasubst_ukrywaj_toc);
StronicowyParser.szablony.LadujSzablon(null,null,null,czy_numerowac,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true)
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(czy_numerowac)){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
return;
}
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(null,null,null,undefined,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async (result) => {
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise).then(async (result) => {}).catch(()=>{});
await StronicowyParser.muteks.zablokuj();
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
let rozdzial_ksiazki="rozdział_książki";
let tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return null;
}
let liczba_elementow=tagclass.length;
if(liczba_elementow==0){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return null;
}
let titles=new Array();
let tabstrona=new Array();
let tabs=new Array();
let tab_section=new Array();
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element_strony,tab_promise2);
}
let tab_hn=new Array();
async function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
await StronicowyParser.muteks.zablokuj();
let linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection===null){
let editsection=document.createElement('span');
editsection.classList.add('mw-editsection');
let bracket_poczatek=document.createElement('span');
bracket_poczatek.classList.add('mw-editsection-bracket')
bracket_poczatek.innerHTML="[";
let a=document.createElement('a');
a.setAttribute('href',"/w/index.php?title="+StronicowyParser.kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("§ion="+numer):""));
a.setAttribute('title',"Edytuj artykuł: "+link_strona);
a.innerHTML="edytuj";
let bracket_koniec=document.createElement('span');
bracket_koniec.classList.add('mw-editsection-bracket')
bracket_koniec.innerHTML="]";
editsection.appendChild(bracket_poczatek);
editsection.appendChild(a)
editsection.appendChild(bracket_koniec);
hn.appendChild(editsection);
}
linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection!==null){
let mw_editsection_bracket=linkstrony_editsection.querySelector('a');
if(mw_editsection_bracket!==null){
if(czy_link_nie_w_naglowku){
let a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",StronicowyParser.kodowanie.EncodeHtml("/wiki/"+StronicowyParser.kodowanie.EncodeHtml(link_strona,false,true)));
a.setAttribute("title","Zobacz artykuł: "+link_strona);
let span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
let czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
if(czy_ma){
let rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
let span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}else{
let span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}
}
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
}
for (let i=0;i<liczba_elementow;++i){
let tagclassname=tagclass[i];
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==tagclassname){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
if(tagclassname.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let class_element=tagclassname.getElementsByClassName('strona_subst');
let element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let czy_link_nie_w_naglowku;
let strona_headline=tagclassname.getElementsByClassName('mw-headline');
let link_strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
link_strona=StronicowyParser.kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
if(link_strona!==null){
let re=/\/wiki\//g;
if(re.test(link_strona)){
link_strona=link_strona.substring(6,link_strona.length);
czy_link_nie_w_naglowku=false;
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}
}else{
link_strona=StronicowyParser.style.UsunStyle(element.innerHTML);
czy_link_nie_w_naglowku=true;
}
}
let re = /^[_\s]*$/g;
let dopasowanie = re.test(link_strona);
if(dopasowanie){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return;
};
link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&/g,"&").replace(/ /g," ");
let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /g,"_");
/**/
let hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
let strona=link_strona.match(/^[^#]*/g).toString();
async function PraceIteracyjne(tab_promise2){
await StronicowyParser.muteks.zablokuj();
if(/#/g.test(link_strona)){
let hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let numer=hn.innerHTML;
numer=parseInt(numer);
if(isNaN(numer)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return ;}
let tab_c=tab_section[c];
edit_action(numer,tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}else{
let uzupelniaj_sekcje_artykulow;
if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
uzupelniaj_sekcje_artykulow="tak";
}else{
uzupelniaj_sekcje_artykulow="";
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
let a=headline.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
a[0].setAttribute('title',stare);
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
}else{
edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
if(stronasubst_aktualizowanie_nazw_artykulow){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceIteracyjne(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
/**/
tabs[i]=link_strona;
let czy=false;
for(let d in titles){
if(titles[d]==link_strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=link_strona;
}
if(tabstrona[link_strona]==null){
tabstrona[link_strona]=new Array();
}
let tab=tabstrona[link_strona];
let tablen=tab.length;
tabstrona[link_strona][tablen]=element;
}
async function PraceNaglowki(tab_promise2){
await StronicowyParser.muteks.zablokuj();
let promise;
if(element_strony==document){
let namespace=StronicowyParser.pageinfo.namespace;
let strona_podrecznika=((namespace!="")?(namespace+":"):"")+StronicowyParser.pageinfo.bookname;
promise=Promise.resolve(strona_podrecznika);
}else{
let zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((zaan!==null)&&(zaan.length>0)){
let strona=zaan[0].getAttribute('nazwa_strony');
if(strona){
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}
if(tab_promise2){tab_promise2.push(true);}
promise.then(async (strona_podrecznika)=>{
await StronicowyParser.muteks.zablokuj();
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
let g=0;
let tab_naglowka=new Array();
let tab_hn=new Array();
for(let z=0;z<klasa_naglowka.length;++z){
let pojedyncza_klasa_naglowka=klasa_naglowka[z];
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
let dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
if(dana_klasa_naglowka!==null){
if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
let naglowek=StronicowyParser.style.UsunStyle(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let ww=1;
for(let x=0;x<tab_naglowka.length;++x){
if(tab_naglowka[x]==naglowek){
++ww;
}
}
naglowek=naglowek+((ww>1)?ww:"");
tab_naglowka[g]=naglowek;
tab_hn[g]=dana_klasa_naglowka.parentNode;
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, na stronie głównej podręcznika, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
let naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
edit_action(c+1,nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();return;}
let headline=tab_hn[c].querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
++g;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceNaglowki(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
function RozwazajNaglowki(){
let toc_fun=new StronicowyParser.ListaNodeTOC();
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
let ile_jest=0;
let li=toc_fun.toc[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(let dd=0;dd<li.length;++dd){
let element_li=li[dd];
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_li.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_li.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_li.querySelector('.tocnumber');
toctext_wartosc=element_li.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let czy_jest=undefined;
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
let element_klasa_naglowka=klasa_naglowka[ile_jest];
let headline=element_klasa_naglowka.querySelector('.mw-headline');
if((headline!==null)
&&(headline.parentNode!==null)
&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline.parentNode.parentNode!==null)
&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline.parentNode.parentNode===element_klasa_naglowka)
){
let element_a;
if(czy_side_bar_toc){
element_a=tocnumber.parentNode.parentNode;
}else{
element_a=tocnumber.parentNode;
}
if(element_a.tagName.toUpperCase()=="A"){
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let id_headline=headline.getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
if(czy_jest===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_tablica_rozdzialow[element_toctext]==null){
stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
}else{
stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
}
}
}
}
}
}
}
}
StronicowyParser.LimitTOC(true,stronasubst_ukrywaj_toc);
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],true,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(StronicowyParser.CzyWlaczycSideBarTOC(undefined,true))){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
RozwazajNaglowki();
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
$("div.mw-table-of-contents-container > nav.sidebar-toc ul > li > a > div.sidebar-toc-text").toggleClass("mathml");
}
function Strona(strona){
let strona_re=StronicowyParser.wzor.BezZnakowSpecjalnych(strona);
let re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
return re;
}
function CzyArtykulyZNaglowkamiDlaStrony(re){
for(let s in titles){
let czy_hash=titles[s].match(re);
if(czy_hash){
return true;
}
}
return false;
}
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
for ( let t in titles ) {
let strona=titles[t].match(/^[^#]*/g).toString();
let szablon_artykulu;
let re_strona=Strona(strona);
let czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
if(!czy_naglowki){
szablon_artykulu="{{:"+strona+"}}";
}else{
/*---------------------------------*/
let rozdzial1=null;
let re=/^([^#]*)#(.*)$/g;
if(re.test(titles[t])){
rozdzial1=titles[t].replace(re,"$2");
rozdzial1=rozdzial1.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial1="";}
let rozdzial2=null;
let tit=titles[parseInt(t)+1];
if( tit && re.test(tit) && re_strona.test(tit)){
rozdzial2=tit.replace(re,"$2");
rozdzial2=rozdzial2.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial2="";}
/*---------------------------*/
szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
}
szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona,
text: "<div class=\"hn hn_"+t+"\">\n"+szablon_artykulu+"\n</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
console.log(data,"TYTANB")
await StronicowyParser.muteks.zablokuj();
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);}
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function CzyszczenieZZdarzeńTableOfContent(){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
}
}
CzyszczenieZZdarzeńTableOfContent();
let tab_promise2=new StronicowyParser.SugerowaneObiekty();
async function CzyStronaSubst(element,aktualna_strona,tab_promise2){
if(tab_promise2){tab_promise2.push(true);}
await StronicowyParser.muteks.zablokuj();
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.expandtemplates.wikitext;
console.log(wikikod,"TYTANA")
if((wikikod!==null)&&(aktualna_strona!==null)){
if(tab_promise2){tab_promise2.push(true);}
StronaSubst(element,wikikod,aktualna_strona,tab_promise2).then((result) => {}).catch((error) => {});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
if(tab_promise2){tab_promise2.push(true,true);}
CzyStronaSubst(document,aktualna_strona,tab_promise2);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
function Progress(){
var c=document.createElement('div');
c.setAttribute("id","pasek_postępu")
c.setAttribute('style','line-height:1.2em;margin-top:-2px;margin-left:-2px;position:absolute;width:250px;height:80px;border:1px solid black;box-sizing:border-box;padding:6px;background-color:white;display:flex;flex-direction:column;box-sizing:border-box;');
var label=document.createElement('label');
label.setAttribute('for','file1');
label.innerHTML="<span style=\"color:blue;\">Ukończone wątki: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_0=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file1')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;');
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_1=c.appendChild(progress);
var label=document.createElement('label');
label.setAttribute('for','file2');
label.innerHTML="<span style=\"color:blue;\">Zwolnione blokaty: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_1=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file2')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;')
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_2=c.appendChild(progress);
function PozycjaXY(){
c.style.top=(window.scrollY+document.documentElement.clientHeight-parseFloat(c.style.height))+"px";
c.style.left=(window.scrollX+document.documentElement.clientWidth-parseFloat(c.style.width))+"px";
}
document.querySelector('body').appendChild(c);
PozycjaXY();
$(window).on('scroll',PozycjaXY);
$(window).on('resize',PozycjaXY);
return new Array(element_body_progress_1,element_body_progress_2,span_0,span_1);
}
var arr;
function __FUNKCJA(arr){
arr[0].setAttribute("value","0");
arr[1].setAttribute("value","0");
let dodatnie_0=tab_promise2.lengthPlus;
let ujemne_0=tab_promise2.lengthMinus;
let dodatnie_1=StronicowyParser.muteks.LiczbaBlokatPlus;
let ujemne_1=StronicowyParser.muteks.LiczbaBlokatMinus;
let postep_0=((dodatnie_0>0)?((ujemne_0/dodatnie_0)*100):0);
let postep_1=((dodatnie_1>0)?((ujemne_1/dodatnie_1)*100):0);
arr[0].setAttribute("value",postep_0);
arr[1].setAttribute("value",postep_1);
arr[2].innerHTML=(parseInt(postep_0*1000)/1000)+"%";
arr[3].innerHTML=(parseInt(postep_1*1000)/1000)+"%";
}
StronicowyParser.CzekajNaZakaczenie(tab_promise2,null,StronicowyParser.muteks,(tab_promise)=>{arr=Progress();__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);setTimeout(function(){let node_postep=document.getElementById('pasek_postępu');$(node_postep).remove();},2000);}).then(async (result) => {}).catch(()=>{});
};
StronicowyParser.WyswietlStronyKsiazki().then((result) => {}).catch((error) => {});
});
qj3ykloge2xt0eqn4szmhqk14swmyf6
437479
437478
2022-08-11T19:18:08Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.WyswietlStronyKsiazki=async function(){
await StronicowyParser.muteks.zablokuj();
let stronasubst_latex=undefined;
let stronasubst_mathml=undefined;
let stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
let stronasubst_ukrywaj_toc=undefined;
let stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
let stronasubst_aktualizowanie_nazw_artykulow=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
let stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
let stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
let stronasubst_nie_usuwaj_styli=undefined;
let stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'Strona zbiorcza',
'StronaSubst-description-page': 'Wikibooks:StronicowyParser/StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
{
name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
},
{
name: 'aktualizowanie_nazw_artykulow',
desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
},
{
name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
},
{
name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
},
{
name: 'nie_usuwaj_styli',
desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
},
{
name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
let stronasubst_tablica_tych_samych=new Array();
let stronasubst_tablica_rozdzialow=new Array();
let stronasubst_tablica_alternatywnych_nazw=new Array();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
async function AnalizujDalejSzablonSubst(element_strony,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let rozdzial_ksiazki="rozdział_książki";
let el=$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((el!==null)&&(el.length>0)){
for(let i=0;i<el.length;++i){
let element_el=el[i];
let ksiazka=element_el.querySelector("."+rozdzial_ksiazki);
if(ksiazka){
let nazwa_strony=element_el.getAttribute('nazwa_strony');
if(tab_promise2){tab_promise2.push(true);}
CzyStronaSubst(element_el,nazwa_strony,tab_promise2);
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
async function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let title=data.parse.title;
let wikikod=data.parse.text['*'];
let strona_hash;
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let t=tab_uzyskane[0];
if(t==undefined){
console.log("Nie wykryto znacznika lsth_\d+.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
strona_hash=titles[t];
let selflink=document.createElement('div');
selflink.innerHTML=wikikod;
let czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
let elements=tabstrona[strona_hash];
let a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(title));
a.innerHTML=strona_hash;
let span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","niw link");/*Dodawanie klasy, by inny skript JS to przeanalizował jako link*/
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo(span);
}
for(let q in elements){
let element=elements[q];
element.innerHTML="";
element.appendChild(span);
$(element).wrap(function(){return "<strong></strong>";});
let przed=document.createTextNode("{{:");
let po=document.createTextNode("}}");
element.insertBefore(przed,element.firstChild);
element.appendChild(po);
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=tab_uzyskane[1].innerHTML;
let elements=tabstrona[strona_hash];
for(let q in elements){
let element=elements[q];
element.innerHTML=wikikod;
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element,title,titles);
}
StronicowyParser.AktualizujSpisTresciModuluStrony(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml)
let strona_start=$(elements[0]).parents(".strona_start");
let rodzic=undefined;
if((strona_start!==null)&&(strona_start.length>0)){
rodzic=strona_start[0];
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,true);
for(let q in elements){
let element=elements[q];
async function ElementDalszychObliczen(element,tab_promise2){
await StronicowyParser.muteks.zablokuj(true);
StronicowyParser.PoprawRozdzialyStron(element);
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise2);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element,tab_promise2);
}
if((StronicowyParser.szablony&&StronicowyParser.szablony.LadujSzablon)&&(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst)){
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(element,title,titles,undefined,tab_promise).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(()=>{
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
ElementDalszychObliczen(element,tab_promise2);
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function ToogleTableOfContainer(panel){
let id=panel.target;
let tagname=id.tagName.toUpperCase();
//console.log(czy_klasa,tagname,"TYTAN)";
if(tagname=="BUTTON"){
let czy_klasa_1=$(id).hasClass('sidebar-toc-toggle');
let czy_klasa_2=$(id).hasClass('vector-toc-collapse-button');
if(czy_klasa_1){
$(id).parent().children().last().each((i,element)=>{
let expanded=$(id).attr('aria-expanded');
if(expanded=="false"){
$(element).css('display',"block");
$(element).closest('li').addClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','true');
}else if(expanded=="true"){
$(element).css('display',"none");
$(element).closest('li').removeClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','false');
}
});
}else if(czy_klasa_2){
$(id).parents('#sidebar-toc-label').siblings('ul').each((i,element)=>{
let ukryj=$(element).css('display');
if(ukryj!="none"){
$(element).css('display',"none");
id.innerHTML=" pokaż ";
}else{
$(element).css('display',"block");
id.innerHTML=" ukryj "
}
});
}
}
}
let mutekstoogle=new StronicowyParser.Muteks();
async function ScrollTableOfContainer(){
await mutekstoogle.zablokuj();
var height_sticky=0;
$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').first().each(function(i,el){
var rect_sticky=el.getBoundingClientRect();
height_sticky=rect_sticky.height-15;
});
let parser=document.querySelector('#mw-content-text .mw-parser-output');
if(parser){
let rect=parser.getBoundingClientRect();
if(rect.top>=height_sticky){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item').first().addClass('sidebar-toc-list-item-active');
mutekstoogle.odblokuj();
return;
}
}else{
mutekstoogle.odblokuj();
return;
}
var str=$('#mw-content-text .mw-parser-output').find('h1, h2, h3, h4, h5, h6');
if((str!==null)&&(str.length>0)){
var naglowek;
for(i=0;i<str.length;++i){
let element=str[i];
let rect=element.getBoundingClientRect();
if(rect.top>=height_sticky){
let mw_naglowek=element.querySelector('.mw-headline');
if(mw_naglowek){
let id_naglowek=mw_naglowek.getAttribute('id');
let tak=false;
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+id_naglowek){
let display=window.getComputedStyle(element, null).getPropertyValue('display');
if(display!="none"){
tak=true;
}
}
});
if(tak){
naglowek=id_naglowek;
break;
}
}
}
}
if(naglowek){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+naglowek){
$(element).addClass('sidebar-toc-list-item-active');
}
});
}
}
mutekstoogle.odblokuj();
}
async function StronaSubst(element_strony,wikikod,aktualna_strona,tab_promise2){
await StronicowyParser.muteks.zablokuj();
StronicowyParser.NaprawNaglowkiStrony(element_strony,true);
let czy_wikikod=wikikod.match(/^[_\s]*$/g);
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
function CzyWszystkieNaglowkiWewnatrzStronaStart(){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return false;
}
}
return true;
}
if(czy_wikikod){
StronicowyParser.muteks.odblokuj();
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
let czy_numerowac=StronicowyParser.CzyWlaczycSideBarTOC(undefined,true);
if(czy_numerowac){
czy_numerowac=false;
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+StronicowyParser.pageinfo.fullname+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
czy_numerowac=true;
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
let tab_promise=new Array(true);
StronicowyParser.LimitTOC(czy_numerowac,stronasubst_ukrywaj_toc);
StronicowyParser.szablony.LadujSzablon(null,null,null,czy_numerowac,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true)
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(czy_numerowac)){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
return;
}
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(null,null,null,undefined,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async (result) => {
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise).then(async (result) => {}).catch(()=>{});
await StronicowyParser.muteks.zablokuj();
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
let rozdzial_ksiazki="rozdział_książki";
let tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return null;
}
let liczba_elementow=tagclass.length;
if(liczba_elementow==0){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return null;
}
let titles=new Array();
let tabstrona=new Array();
let tabs=new Array();
let tab_section=new Array();
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element_strony,tab_promise2);
}
let tab_hn=new Array();
async function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
await StronicowyParser.muteks.zablokuj();
let linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection===null){
let editsection=document.createElement('span');
editsection.classList.add('mw-editsection');
let bracket_poczatek=document.createElement('span');
bracket_poczatek.classList.add('mw-editsection-bracket')
bracket_poczatek.innerHTML="[";
let a=document.createElement('a');
a.setAttribute('href',"/w/index.php?title="+StronicowyParser.kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("§ion="+numer):""));
a.setAttribute('title',"Edytuj artykuł: "+link_strona);
a.innerHTML="edytuj";
let bracket_koniec=document.createElement('span');
bracket_koniec.classList.add('mw-editsection-bracket')
bracket_koniec.innerHTML="]";
editsection.appendChild(bracket_poczatek);
editsection.appendChild(a)
editsection.appendChild(bracket_koniec);
hn.appendChild(editsection);
}
linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection!==null){
let mw_editsection_bracket=linkstrony_editsection.querySelector('a');
if(mw_editsection_bracket!==null){
if(czy_link_nie_w_naglowku){
let a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",StronicowyParser.kodowanie.EncodeHtml("/wiki/"+StronicowyParser.kodowanie.EncodeHtml(link_strona,false,true)));
a.setAttribute("title","Zobacz artykuł: "+link_strona);
let span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
let czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
if(czy_ma){
let rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
let span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}else{
let span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}
}
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
}
for (let i=0;i<liczba_elementow;++i){
let tagclassname=tagclass[i];
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==tagclassname){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
if(tagclassname.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let class_element=tagclassname.getElementsByClassName('strona_subst');
let element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let czy_link_nie_w_naglowku;
let strona_headline=tagclassname.getElementsByClassName('mw-headline');
let link_strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
link_strona=StronicowyParser.kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
if(link_strona!==null){
let re=/\/wiki\//g;
if(re.test(link_strona)){
link_strona=link_strona.substring(6,link_strona.length);
czy_link_nie_w_naglowku=false;
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}
}else{
link_strona=StronicowyParser.style.UsunStyle(element.innerHTML);
czy_link_nie_w_naglowku=true;
}
}
let re = /^[_\s]*$/g;
let dopasowanie = re.test(link_strona);
if(dopasowanie){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return;
};
link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&/g,"&").replace(/ /g," ");
let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /g,"_");
/**/
let hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
let strona=link_strona.match(/^[^#]*/g).toString();
async function PraceIteracyjne(tab_promise2){
await StronicowyParser.muteks.zablokuj();
if(/#/g.test(link_strona)){
let hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let numer=hn.innerHTML;
numer=parseInt(numer);
if(isNaN(numer)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return ;}
let tab_c=tab_section[c];
edit_action(numer,tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}else{
let uzupelniaj_sekcje_artykulow;
if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
uzupelniaj_sekcje_artykulow="tak";
}else{
uzupelniaj_sekcje_artykulow="";
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
let a=headline.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
a[0].setAttribute('title',stare);
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
}else{
edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
if(stronasubst_aktualizowanie_nazw_artykulow){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceIteracyjne(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
/**/
tabs[i]=link_strona;
let czy=false;
for(let d in titles){
if(titles[d]==link_strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=link_strona;
}
if(tabstrona[link_strona]==null){
tabstrona[link_strona]=new Array();
}
let tab=tabstrona[link_strona];
let tablen=tab.length;
tabstrona[link_strona][tablen]=element;
}
async function PraceNaglowki(tab_promise2){
await StronicowyParser.muteks.zablokuj();
let promise;
if(element_strony==document){
let namespace=StronicowyParser.pageinfo.namespace;
let strona_podrecznika=((namespace!="")?(namespace+":"):"")+StronicowyParser.pageinfo.bookname;
promise=Promise.resolve(strona_podrecznika);
}else{
let zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((zaan!==null)&&(zaan.length>0)){
let strona=zaan[0].getAttribute('nazwa_strony');
if(strona){
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}
if(tab_promise2){tab_promise2.push(true);}
promise.then(async (strona_podrecznika)=>{
await StronicowyParser.muteks.zablokuj();
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
let g=0;
let tab_naglowka=new Array();
let tab_hn=new Array();
for(let z=0;z<klasa_naglowka.length;++z){
let pojedyncza_klasa_naglowka=klasa_naglowka[z];
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
let dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
if(dana_klasa_naglowka!==null){
if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
let naglowek=StronicowyParser.style.UsunStyle(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let ww=1;
for(let x=0;x<tab_naglowka.length;++x){
if(tab_naglowka[x]==naglowek){
++ww;
}
}
naglowek=naglowek+((ww>1)?ww:"");
tab_naglowka[g]=naglowek;
tab_hn[g]=dana_klasa_naglowka.parentNode;
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, na stronie głównej podręcznika, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
let naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
edit_action(c+1,nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();return;}
let headline=tab_hn[c].querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
++g;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceNaglowki(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
function RozwazajNaglowki(){
let toc_fun=new StronicowyParser.ListaNodeTOC();
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
let ile_jest=0;
let li=toc_fun.toc[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(let dd=0;dd<li.length;++dd){
let element_li=li[dd];
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_li.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_li.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_li.querySelector('.tocnumber');
toctext_wartosc=element_li.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let czy_jest=undefined;
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
let element_klasa_naglowka=klasa_naglowka[ile_jest];
let headline=element_klasa_naglowka.querySelector('.mw-headline');
if((headline!==null)
&&(headline.parentNode!==null)
&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline.parentNode.parentNode!==null)
&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline.parentNode.parentNode===element_klasa_naglowka)
){
let element_a;
if(czy_side_bar_toc){
element_a=tocnumber.parentNode.parentNode;
}else{
element_a=tocnumber.parentNode;
}
if(element_a.tagName.toUpperCase()=="A"){
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let id_headline=headline.getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
if(czy_jest===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_tablica_rozdzialow[element_toctext]==null){
stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
}else{
stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
}
}
}
}
}
}
}
}
StronicowyParser.LimitTOC(true,stronasubst_ukrywaj_toc);
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],true,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(StronicowyParser.CzyWlaczycSideBarTOC(undefined,true))){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
RozwazajNaglowki();
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
$("div.mw-table-of-contents-container > nav.sidebar-toc ul > li > a > div.sidebar-toc-text").toggleClass("mathml");
}
function Strona(strona){
let strona_re=StronicowyParser.wzor.BezZnakowSpecjalnych(strona);
let re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
return re;
}
function CzyArtykulyZNaglowkamiDlaStrony(re){
for(let s in titles){
let czy_hash=titles[s].match(re);
if(czy_hash){
return true;
}
}
return false;
}
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
for ( let t in titles ) {
let strona=titles[t].match(/^[^#]*/g).toString();
let szablon_artykulu;
let re_strona=Strona(strona);
let czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
if(!czy_naglowki){
szablon_artykulu="{{:"+strona+"}}";
}else{
/*---------------------------------*/
let rozdzial1=null;
let re=/^([^#]*)#(.*)$/g;
if(re.test(titles[t])){
rozdzial1=titles[t].replace(re,"$2");
rozdzial1=rozdzial1.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial1="";}
let rozdzial2=null;
let tit=titles[parseInt(t)+1];
if( tit && re.test(tit) && re_strona.test(tit)){
rozdzial2=tit.replace(re,"$2");
rozdzial2=rozdzial2.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial2="";}
/*---------------------------*/
szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
}
szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona,
text: "<div class=\"hn hn_"+t+"\">\n"+szablon_artykulu+"\n</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);}
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function CzyszczenieZZdarzeńTableOfContent(){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
}
}
CzyszczenieZZdarzeńTableOfContent();
let tab_promise2=new StronicowyParser.SugerowaneObiekty();
async function CzyStronaSubst(element,aktualna_strona,tab_promise2){
if(tab_promise2){tab_promise2.push(true);}
await StronicowyParser.muteks.zablokuj();
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.expandtemplates.wikitext;
if((wikikod!==null)&&(aktualna_strona!==null)){
if(tab_promise2){tab_promise2.push(true);}
StronaSubst(element,wikikod,aktualna_strona,tab_promise2).then((result) => {}).catch((error) => {});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
if(tab_promise2){tab_promise2.push(true,true);}
CzyStronaSubst(document,aktualna_strona,tab_promise2);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
function Progress(){
var c=document.createElement('div');
c.setAttribute("id","pasek_postępu")
c.setAttribute('style','line-height:1.2em;margin-top:-2px;margin-left:-2px;position:absolute;width:250px;height:80px;border:1px solid black;box-sizing:border-box;padding:6px;background-color:white;display:flex;flex-direction:column;box-sizing:border-box;');
var label=document.createElement('label');
label.setAttribute('for','file1');
label.innerHTML="<span style=\"color:blue;\">Ukończone wątki: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_0=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file1')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;');
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_1=c.appendChild(progress);
var label=document.createElement('label');
label.setAttribute('for','file2');
label.innerHTML="<span style=\"color:blue;\">Zwolnione blokaty: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_1=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file2')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;')
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_2=c.appendChild(progress);
function PozycjaXY(){
c.style.top=(window.scrollY+document.documentElement.clientHeight-parseFloat(c.style.height))+"px";
c.style.left=(window.scrollX+document.documentElement.clientWidth-parseFloat(c.style.width))+"px";
}
document.querySelector('body').appendChild(c);
PozycjaXY();
$(window).on('scroll',PozycjaXY);
$(window).on('resize',PozycjaXY);
return new Array(element_body_progress_1,element_body_progress_2,span_0,span_1);
}
var arr;
function __FUNKCJA(arr){
arr[0].setAttribute("value","0");
arr[1].setAttribute("value","0");
let dodatnie_0=tab_promise2.lengthPlus;
let ujemne_0=tab_promise2.lengthMinus;
let dodatnie_1=StronicowyParser.muteks.LiczbaBlokatPlus;
let ujemne_1=StronicowyParser.muteks.LiczbaBlokatMinus;
let postep_0=((dodatnie_0>0)?((ujemne_0/dodatnie_0)*100):0);
let postep_1=((dodatnie_1>0)?((ujemne_1/dodatnie_1)*100):0);
arr[0].setAttribute("value",postep_0);
arr[1].setAttribute("value",postep_1);
arr[2].innerHTML=(parseInt(postep_0*1000)/1000)+"%";
arr[3].innerHTML=(parseInt(postep_1*1000)/1000)+"%";
}
StronicowyParser.CzekajNaZakaczenie(tab_promise2,null,StronicowyParser.muteks,(tab_promise)=>{arr=Progress();__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);setTimeout(function(){let node_postep=document.getElementById('pasek_postępu');$(node_postep).remove();},2000);}).then(async (result) => {}).catch(()=>{});
};
StronicowyParser.WyswietlStronyKsiazki().then((result) => {}).catch((error) => {});
});
nurnpnmoj4xldmktu7812r8dzbhmg36
437483
437479
2022-08-11T19:33:49Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.WyswietlStronyKsiazki=async function(){
await StronicowyParser.muteks.zablokuj();
let stronasubst_latex=undefined;
let stronasubst_mathml=undefined;
let stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
let stronasubst_ukrywaj_toc=undefined;
let stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
let stronasubst_aktualizowanie_nazw_artykulow=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
let stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
let stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
let stronasubst_nie_usuwaj_styli=undefined;
let stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'Strona zbiorcza',
'StronaSubst-description-page': 'Wikibooks:StronicowyParser/StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
{
name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
},
{
name: 'aktualizowanie_nazw_artykulow',
desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
},
{
name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
},
{
name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
},
{
name: 'nie_usuwaj_styli',
desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
},
{
name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
let stronasubst_tablica_tych_samych=new Array();
let stronasubst_tablica_rozdzialow=new Array();
let stronasubst_tablica_alternatywnych_nazw=new Array();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
async function AnalizujDalejSzablonSubst(element_strony,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let rozdzial_ksiazki="rozdział_książki";
let el=$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((el!==null)&&(el.length>0)){
for(let i=0;i<el.length;++i){
let element_el=el[i];
let ksiazka=element_el.querySelector("."+rozdzial_ksiazki);
if(ksiazka){
let nazwa_strony=element_el.getAttribute('nazwa_strony');
if(tab_promise2){tab_promise2.push(true);}
CzyStronaSubst(element_el,nazwa_strony,tab_promise2);
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
async function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let title=data.parse.title;
let wikikod=data.parse.text['*'];
console.log(wikikod,"TYTANB");
let strona_hash;
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let t=tab_uzyskane[0];
if(t==undefined){
console.log("Nie wykryto znacznika lsth_\d+.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
strona_hash=titles[t];
let selflink=document.createElement('div');
selflink.innerHTML=wikikod;
let czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
let elements=tabstrona[strona_hash];
let a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(title));
a.innerHTML=strona_hash;
let span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","niw link");/*Dodawanie klasy, by inny skript JS to przeanalizował jako link*/
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo(span);
}
for(let q in elements){
let element=elements[q];
element.innerHTML="";
element.appendChild(span);
$(element).wrap(function(){return "<strong></strong>";});
let przed=document.createTextNode("{{:");
let po=document.createTextNode("}}");
element.insertBefore(przed,element.firstChild);
element.appendChild(po);
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=tab_uzyskane[1].innerHTML;
let elements=tabstrona[strona_hash];
for(let q in elements){
let element=elements[q];
element.innerHTML=wikikod;
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element,title,titles);
}
StronicowyParser.AktualizujSpisTresciModuluStrony(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml)
let strona_start=$(elements[0]).parents(".strona_start");
let rodzic=undefined;
if((strona_start!==null)&&(strona_start.length>0)){
rodzic=strona_start[0];
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,true);
for(let q in elements){
let element=elements[q];
async function ElementDalszychObliczen(element,tab_promise2){
await StronicowyParser.muteks.zablokuj(true);
StronicowyParser.PoprawRozdzialyStron(element);
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise2);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element,tab_promise2);
}
if((StronicowyParser.szablony&&StronicowyParser.szablony.LadujSzablon)&&(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst)){
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(element,title,titles,undefined,tab_promise).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(()=>{
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
ElementDalszychObliczen(element,tab_promise2);
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function ToogleTableOfContainer(panel){
let id=panel.target;
let tagname=id.tagName.toUpperCase();
//console.log(czy_klasa,tagname,"TYTAN)";
if(tagname=="BUTTON"){
let czy_klasa_1=$(id).hasClass('sidebar-toc-toggle');
let czy_klasa_2=$(id).hasClass('vector-toc-collapse-button');
if(czy_klasa_1){
$(id).parent().children().last().each((i,element)=>{
let expanded=$(id).attr('aria-expanded');
if(expanded=="false"){
$(element).css('display',"block");
$(element).closest('li').addClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','true');
}else if(expanded=="true"){
$(element).css('display',"none");
$(element).closest('li').removeClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','false');
}
});
}else if(czy_klasa_2){
$(id).parents('#sidebar-toc-label').siblings('ul').each((i,element)=>{
let ukryj=$(element).css('display');
if(ukryj!="none"){
$(element).css('display',"none");
id.innerHTML=" pokaż ";
}else{
$(element).css('display',"block");
id.innerHTML=" ukryj "
}
});
}
}
}
let mutekstoogle=new StronicowyParser.Muteks();
async function ScrollTableOfContainer(){
await mutekstoogle.zablokuj();
var height_sticky=0;
$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').first().each(function(i,el){
var rect_sticky=el.getBoundingClientRect();
height_sticky=rect_sticky.height-15;
});
let parser=document.querySelector('#mw-content-text .mw-parser-output');
if(parser){
let rect=parser.getBoundingClientRect();
if(rect.top>=height_sticky){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item').first().addClass('sidebar-toc-list-item-active');
mutekstoogle.odblokuj();
return;
}
}else{
mutekstoogle.odblokuj();
return;
}
var str=$('#mw-content-text .mw-parser-output').find('h1, h2, h3, h4, h5, h6');
if((str!==null)&&(str.length>0)){
var naglowek;
for(i=0;i<str.length;++i){
let element=str[i];
let rect=element.getBoundingClientRect();
if(rect.top>=height_sticky){
let mw_naglowek=element.querySelector('.mw-headline');
if(mw_naglowek){
let id_naglowek=mw_naglowek.getAttribute('id');
let tak=false;
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+id_naglowek){
let display=window.getComputedStyle(element, null).getPropertyValue('display');
if(display!="none"){
tak=true;
}
}
});
if(tak){
naglowek=id_naglowek;
break;
}
}
}
}
if(naglowek){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+naglowek){
$(element).addClass('sidebar-toc-list-item-active');
}
});
}
}
mutekstoogle.odblokuj();
}
async function StronaSubst(element_strony,wikikod,aktualna_strona,tab_promise2){
console.log(wikikod,"TYTANA")
await StronicowyParser.muteks.zablokuj();
StronicowyParser.NaprawNaglowkiStrony(element_strony,true);
let czy_wikikod=wikikod.match(/^[_\s]*$/g);
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
function CzyWszystkieNaglowkiWewnatrzStronaStart(){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return false;
}
}
return true;
}
if(czy_wikikod){
StronicowyParser.muteks.odblokuj();
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
let czy_numerowac=StronicowyParser.CzyWlaczycSideBarTOC(undefined,true);
if(czy_numerowac){
czy_numerowac=false;
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+StronicowyParser.pageinfo.fullname+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
czy_numerowac=true;
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
let tab_promise=new Array(true);
StronicowyParser.LimitTOC(czy_numerowac,stronasubst_ukrywaj_toc);
StronicowyParser.szablony.LadujSzablon(null,null,null,czy_numerowac,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true)
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(czy_numerowac)){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
return;
}
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(null,null,null,undefined,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async (result) => {
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise).then(async (result) => {}).catch(()=>{});
await StronicowyParser.muteks.zablokuj();
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
let rozdzial_ksiazki="rozdział_książki";
let tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return null;
}
let liczba_elementow=tagclass.length;
if(liczba_elementow==0){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return null;
}
let titles=new Array();
let tabstrona=new Array();
let tabs=new Array();
let tab_section=new Array();
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element_strony,tab_promise2);
}
let tab_hn=new Array();
async function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
await StronicowyParser.muteks.zablokuj();
let linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection===null){
let editsection=document.createElement('span');
editsection.classList.add('mw-editsection');
let bracket_poczatek=document.createElement('span');
bracket_poczatek.classList.add('mw-editsection-bracket')
bracket_poczatek.innerHTML="[";
let a=document.createElement('a');
a.setAttribute('href',"/w/index.php?title="+StronicowyParser.kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("§ion="+numer):""));
a.setAttribute('title',"Edytuj artykuł: "+link_strona);
a.innerHTML="edytuj";
let bracket_koniec=document.createElement('span');
bracket_koniec.classList.add('mw-editsection-bracket')
bracket_koniec.innerHTML="]";
editsection.appendChild(bracket_poczatek);
editsection.appendChild(a)
editsection.appendChild(bracket_koniec);
hn.appendChild(editsection);
}
linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection!==null){
let mw_editsection_bracket=linkstrony_editsection.querySelector('a');
if(mw_editsection_bracket!==null){
if(czy_link_nie_w_naglowku){
let a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",StronicowyParser.kodowanie.EncodeHtml("/wiki/"+StronicowyParser.kodowanie.EncodeHtml(link_strona,false,true)));
a.setAttribute("title","Zobacz artykuł: "+link_strona);
let span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
let czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
if(czy_ma){
let rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
let span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}else{
let span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}
}
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
}
for (let i=0;i<liczba_elementow;++i){
let tagclassname=tagclass[i];
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==tagclassname){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
if(tagclassname.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let class_element=tagclassname.getElementsByClassName('strona_subst');
let element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let czy_link_nie_w_naglowku;
let strona_headline=tagclassname.getElementsByClassName('mw-headline');
let link_strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
link_strona=StronicowyParser.kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
if(link_strona!==null){
let re=/\/wiki\//g;
if(re.test(link_strona)){
link_strona=link_strona.substring(6,link_strona.length);
czy_link_nie_w_naglowku=false;
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}
}else{
link_strona=StronicowyParser.style.UsunStyle(element.innerHTML);
czy_link_nie_w_naglowku=true;
}
}
let re = /^[_\s]*$/g;
let dopasowanie = re.test(link_strona);
if(dopasowanie){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return;
};
link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&/g,"&").replace(/ /g," ");
let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /g,"_");
/**/
let hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
let strona=link_strona.match(/^[^#]*/g).toString();
async function PraceIteracyjne(tab_promise2){
await StronicowyParser.muteks.zablokuj();
if(/#/g.test(link_strona)){
let hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let numer=hn.innerHTML;
numer=parseInt(numer);
if(isNaN(numer)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return ;}
let tab_c=tab_section[c];
edit_action(numer,tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}else{
let uzupelniaj_sekcje_artykulow;
if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
uzupelniaj_sekcje_artykulow="tak";
}else{
uzupelniaj_sekcje_artykulow="";
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
let a=headline.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
a[0].setAttribute('title',stare);
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
}else{
edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
if(stronasubst_aktualizowanie_nazw_artykulow){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceIteracyjne(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
/**/
tabs[i]=link_strona;
let czy=false;
for(let d in titles){
if(titles[d]==link_strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=link_strona;
}
if(tabstrona[link_strona]==null){
tabstrona[link_strona]=new Array();
}
let tab=tabstrona[link_strona];
let tablen=tab.length;
tabstrona[link_strona][tablen]=element;
}
async function PraceNaglowki(tab_promise2){
await StronicowyParser.muteks.zablokuj();
let promise;
if(element_strony==document){
let namespace=StronicowyParser.pageinfo.namespace;
let strona_podrecznika=((namespace!="")?(namespace+":"):"")+StronicowyParser.pageinfo.bookname;
promise=Promise.resolve(strona_podrecznika);
}else{
let zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((zaan!==null)&&(zaan.length>0)){
let strona=zaan[0].getAttribute('nazwa_strony');
if(strona){
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}
if(tab_promise2){tab_promise2.push(true);}
promise.then(async (strona_podrecznika)=>{
await StronicowyParser.muteks.zablokuj();
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
let g=0;
let tab_naglowka=new Array();
let tab_hn=new Array();
for(let z=0;z<klasa_naglowka.length;++z){
let pojedyncza_klasa_naglowka=klasa_naglowka[z];
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
let dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
if(dana_klasa_naglowka!==null){
if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
let naglowek=StronicowyParser.style.UsunStyle(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let ww=1;
for(let x=0;x<tab_naglowka.length;++x){
if(tab_naglowka[x]==naglowek){
++ww;
}
}
naglowek=naglowek+((ww>1)?ww:"");
tab_naglowka[g]=naglowek;
tab_hn[g]=dana_klasa_naglowka.parentNode;
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, na stronie głównej podręcznika, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
let naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
edit_action(c+1,nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();return;}
let headline=tab_hn[c].querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
++g;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceNaglowki(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
function RozwazajNaglowki(){
let toc_fun=new StronicowyParser.ListaNodeTOC();
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
let ile_jest=0;
let li=toc_fun.toc[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(let dd=0;dd<li.length;++dd){
let element_li=li[dd];
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_li.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_li.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_li.querySelector('.tocnumber');
toctext_wartosc=element_li.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let czy_jest=undefined;
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
let element_klasa_naglowka=klasa_naglowka[ile_jest];
let headline=element_klasa_naglowka.querySelector('.mw-headline');
if((headline!==null)
&&(headline.parentNode!==null)
&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline.parentNode.parentNode!==null)
&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline.parentNode.parentNode===element_klasa_naglowka)
){
let element_a;
if(czy_side_bar_toc){
element_a=tocnumber.parentNode.parentNode;
}else{
element_a=tocnumber.parentNode;
}
if(element_a.tagName.toUpperCase()=="A"){
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let id_headline=headline.getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
if(czy_jest===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_tablica_rozdzialow[element_toctext]==null){
stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
}else{
stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
}
}
}
}
}
}
}
}
StronicowyParser.LimitTOC(true,stronasubst_ukrywaj_toc);
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],true,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(StronicowyParser.CzyWlaczycSideBarTOC(undefined,true))){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
RozwazajNaglowki();
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
$("div.mw-table-of-contents-container > nav.sidebar-toc ul > li > a > div.sidebar-toc-text").toggleClass("mathml");
}
function Strona(strona){
let strona_re=StronicowyParser.wzor.BezZnakowSpecjalnych(strona);
let re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
return re;
}
function CzyArtykulyZNaglowkamiDlaStrony(re){
for(let s in titles){
let czy_hash=titles[s].match(re);
if(czy_hash){
return true;
}
}
return false;
}
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
for ( let t in titles ) {
let strona=titles[t].match(/^[^#]*/g).toString();
let szablon_artykulu;
let re_strona=Strona(strona);
let czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
if(!czy_naglowki){
szablon_artykulu="{{:"+strona+"}}";
}else{
/*---------------------------------*/
let rozdzial1=null;
let re=/^([^#]*)#(.*)$/g;
if(re.test(titles[t])){
rozdzial1=titles[t].replace(re,"$2");
rozdzial1=rozdzial1.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial1="";}
let rozdzial2=null;
let tit=titles[parseInt(t)+1];
if( tit && re.test(tit) && re_strona.test(tit)){
rozdzial2=tit.replace(re,"$2");
rozdzial2=rozdzial2.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial2="";}
/*---------------------------*/
szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
}
szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona,
text: "<div class=\"hn hn_"+t+"\">\n"+szablon_artykulu+"\n</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);}
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function CzyszczenieZZdarzeńTableOfContent(){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
}
}
CzyszczenieZZdarzeńTableOfContent();
let tab_promise2=new StronicowyParser.SugerowaneObiekty();
async function CzyStronaSubst(element,aktualna_strona,tab_promise2){
if(tab_promise2){tab_promise2.push(true);}
await StronicowyParser.muteks.zablokuj();
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.expandtemplates.wikitext;
if((wikikod!==null)&&(aktualna_strona!==null)){
if(tab_promise2){tab_promise2.push(true);}
StronaSubst(element,wikikod,aktualna_strona,tab_promise2).then((result) => {}).catch((error) => {});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
if(tab_promise2){tab_promise2.push(true,true);}
CzyStronaSubst(document,aktualna_strona,tab_promise2);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
function Progress(){
var c=document.createElement('div');
c.setAttribute("id","pasek_postępu")
c.setAttribute('style','line-height:1.2em;margin-top:-2px;margin-left:-2px;position:absolute;width:250px;height:80px;border:1px solid black;box-sizing:border-box;padding:6px;background-color:white;display:flex;flex-direction:column;box-sizing:border-box;');
var label=document.createElement('label');
label.setAttribute('for','file1');
label.innerHTML="<span style=\"color:blue;\">Ukończone wątki: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_0=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file1')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;');
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_1=c.appendChild(progress);
var label=document.createElement('label');
label.setAttribute('for','file2');
label.innerHTML="<span style=\"color:blue;\">Zwolnione blokaty: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_1=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file2')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;')
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_2=c.appendChild(progress);
function PozycjaXY(){
c.style.top=(window.scrollY+document.documentElement.clientHeight-parseFloat(c.style.height))+"px";
c.style.left=(window.scrollX+document.documentElement.clientWidth-parseFloat(c.style.width))+"px";
}
document.querySelector('body').appendChild(c);
PozycjaXY();
$(window).on('scroll',PozycjaXY);
$(window).on('resize',PozycjaXY);
return new Array(element_body_progress_1,element_body_progress_2,span_0,span_1);
}
var arr;
function __FUNKCJA(arr){
arr[0].setAttribute("value","0");
arr[1].setAttribute("value","0");
let dodatnie_0=tab_promise2.lengthPlus;
let ujemne_0=tab_promise2.lengthMinus;
let dodatnie_1=StronicowyParser.muteks.LiczbaBlokatPlus;
let ujemne_1=StronicowyParser.muteks.LiczbaBlokatMinus;
let postep_0=((dodatnie_0>0)?((ujemne_0/dodatnie_0)*100):0);
let postep_1=((dodatnie_1>0)?((ujemne_1/dodatnie_1)*100):0);
arr[0].setAttribute("value",postep_0);
arr[1].setAttribute("value",postep_1);
arr[2].innerHTML=(parseInt(postep_0*1000)/1000)+"%";
arr[3].innerHTML=(parseInt(postep_1*1000)/1000)+"%";
}
StronicowyParser.CzekajNaZakaczenie(tab_promise2,null,StronicowyParser.muteks,(tab_promise)=>{arr=Progress();__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);setTimeout(function(){let node_postep=document.getElementById('pasek_postępu');$(node_postep).remove();},2000);}).then(async (result) => {}).catch(()=>{});
};
StronicowyParser.WyswietlStronyKsiazki().then((result) => {}).catch((error) => {});
});
p5k5fcah2bo7vb13grgo99gj6wv4fdv
437505
437483
2022-08-11T20:30:03Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.WyswietlStronyKsiazki=async function(){
await StronicowyParser.muteks.zablokuj();
let stronasubst_latex=undefined;
let stronasubst_mathml=undefined;
let stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
let stronasubst_ukrywaj_toc=undefined;
let stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
let stronasubst_aktualizowanie_nazw_artykulow=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
let stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
let stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
let stronasubst_nie_usuwaj_styli=undefined;
let stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'Strona zbiorcza',
'StronaSubst-description-page': 'Wikibooks:StronicowyParser/StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
{
name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
},
{
name: 'aktualizowanie_nazw_artykulow',
desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
},
{
name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
},
{
name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
},
{
name: 'nie_usuwaj_styli',
desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
},
{
name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
let stronasubst_tablica_tych_samych=new Array();
let stronasubst_tablica_rozdzialow=new Array();
let stronasubst_tablica_alternatywnych_nazw=new Array();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
async function AnalizujDalejSzablonSubst(element_strony,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let rozdzial_ksiazki="rozdział_książki";
let el=$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((el!==null)&&(el.length>0)){
for(let i=0;i<el.length;++i){
let element_el=el[i];
let ksiazka=element_el.querySelector("."+rozdzial_ksiazki);
if(ksiazka){
let nazwa_strony=element_el.getAttribute('nazwa_strony');
if(tab_promise2){tab_promise2.push(true);}
CzyStronaSubst(element_el,nazwa_strony,tab_promise2);
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
async function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let title=data.parse.title;
let wikikod=data.parse.text['*'];
let strona_hash;
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let t=tab_uzyskane[0];
if(t==undefined){
console.log("Nie wykryto znacznika lsth_\d+.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
strona_hash=titles[t];
let selflink=document.createElement('div');
selflink.innerHTML=wikikod;
let czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
let elements=tabstrona[strona_hash];
let a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(title));
a.innerHTML=strona_hash;
let span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","niw link");/*Dodawanie klasy, by inny skript JS to przeanalizował jako link*/
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo(span);
}
for(let q in elements){
let element=elements[q];
element.innerHTML="";
element.appendChild(span);
$(element).wrap(function(){return "<strong></strong>";});
let przed=document.createTextNode("{{:");
let po=document.createTextNode("}}");
element.insertBefore(przed,element.firstChild);
element.appendChild(po);
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=tab_uzyskane[1].innerHTML;
let elements=tabstrona[strona_hash];
for(let q in elements){
let element=elements[q];
element.innerHTML=wikikod;
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element,title,titles);
}
StronicowyParser.AktualizujSpisTresciModuluStrony(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml)
let strona_start=$(elements[0]).parents(".strona_start");
let rodzic=undefined;
if((strona_start!==null)&&(strona_start.length>0)){
rodzic=strona_start[0];
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,true);
for(let q in elements){
let element=elements[q];
async function ElementDalszychObliczen(element,tab_promise2){
await StronicowyParser.muteks.zablokuj(true);
StronicowyParser.PoprawRozdzialyStron(element);
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise2);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element,tab_promise2);
}
if((StronicowyParser.szablony&&StronicowyParser.szablony.LadujSzablon)&&(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst)){
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(element,title,titles,undefined,tab_promise).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(()=>{
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
ElementDalszychObliczen(element,tab_promise2);
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function ToogleTableOfContainer(panel){
let id=panel.target;
let tagname=id.tagName.toUpperCase();
//console.log(czy_klasa,tagname,"TYTAN)";
if(tagname=="BUTTON"){
let czy_klasa_1=$(id).hasClass('sidebar-toc-toggle');
let czy_klasa_2=$(id).hasClass('vector-toc-collapse-button');
if(czy_klasa_1){
$(id).parent().children().last().each((i,element)=>{
let expanded=$(id).attr('aria-expanded');
if(expanded=="false"){
$(element).css('display',"block");
$(element).closest('li').addClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','true');
}else if(expanded=="true"){
$(element).css('display',"none");
$(element).closest('li').removeClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','false');
}
});
}else if(czy_klasa_2){
$(id).parents('#sidebar-toc-label').siblings('ul').each((i,element)=>{
let ukryj=$(element).css('display');
if(ukryj!="none"){
$(element).css('display',"none");
id.innerHTML=" pokaż ";
}else{
$(element).css('display',"block");
id.innerHTML=" ukryj "
}
});
}
}
}
let mutekstoogle=new StronicowyParser.Muteks();
async function ScrollTableOfContainer(){
await mutekstoogle.zablokuj();
var height_sticky=0;
$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').first().each(function(i,el){
var rect_sticky=el.getBoundingClientRect();
height_sticky=rect_sticky.height-15;
});
let parser=document.querySelector('#mw-content-text .mw-parser-output');
if(parser){
let rect=parser.getBoundingClientRect();
if(rect.top>=height_sticky){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item').first().addClass('sidebar-toc-list-item-active');
mutekstoogle.odblokuj();
return;
}
}else{
mutekstoogle.odblokuj();
return;
}
var str=$('#mw-content-text .mw-parser-output').find('h1, h2, h3, h4, h5, h6');
if((str!==null)&&(str.length>0)){
var naglowek;
for(i=0;i<str.length;++i){
let element=str[i];
let rect=element.getBoundingClientRect();
if(rect.top>=height_sticky){
let mw_naglowek=element.querySelector('.mw-headline');
if(mw_naglowek){
let id_naglowek=mw_naglowek.getAttribute('id');
let tak=false;
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+id_naglowek){
let display=window.getComputedStyle(element, null).getPropertyValue('display');
if(display!="none"){
tak=true;
}
}
});
if(tak){
naglowek=id_naglowek;
break;
}
}
}
}
if(naglowek){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+naglowek){
$(element).addClass('sidebar-toc-list-item-active');
}
});
}
}
mutekstoogle.odblokuj();
}
async function StronaSubst(element_strony,wikikod,aktualna_strona,tab_promise2){
await StronicowyParser.muteks.zablokuj();
StronicowyParser.NaprawNaglowkiStrony(element_strony,true);
let czy_wikikod=wikikod.match(/^[_\s]*$/g);
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
function CzyWszystkieNaglowkiWewnatrzStronaStart(){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return false;
}
}
return true;
}
if(czy_wikikod){
StronicowyParser.muteks.odblokuj();
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
let czy_numerowac=StronicowyParser.CzyWlaczycSideBarTOC(undefined,true);
if(czy_numerowac){
czy_numerowac=false;
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+StronicowyParser.pageinfo.fullname+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
czy_numerowac=true;
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
let tab_promise=new Array(true);
StronicowyParser.LimitTOC(czy_numerowac,stronasubst_ukrywaj_toc);
StronicowyParser.szablony.LadujSzablon(null,null,null,czy_numerowac,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true)
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(czy_numerowac)){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
return;
}
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(null,null,null,undefined,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async (result) => {
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise).then(async (result) => {}).catch(()=>{});
await StronicowyParser.muteks.zablokuj();
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
let rozdzial_ksiazki="rozdział_książki";
let tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return null;
}
let liczba_elementow=tagclass.length;
if(liczba_elementow==0){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return null;
}
let titles=new Array();
let tabstrona=new Array();
let tabs=new Array();
let tab_section=new Array();
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element_strony,tab_promise2);
}
let tab_hn=new Array();
async function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
await StronicowyParser.muteks.zablokuj();
let linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection===null){
let editsection=document.createElement('span');
editsection.classList.add('mw-editsection');
let bracket_poczatek=document.createElement('span');
bracket_poczatek.classList.add('mw-editsection-bracket')
bracket_poczatek.innerHTML="[";
let a=document.createElement('a');
a.setAttribute('href',"/w/index.php?title="+StronicowyParser.kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("§ion="+numer):""));
a.setAttribute('title',"Edytuj artykuł: "+link_strona);
a.innerHTML="edytuj";
let bracket_koniec=document.createElement('span');
bracket_koniec.classList.add('mw-editsection-bracket')
bracket_koniec.innerHTML="]";
editsection.appendChild(bracket_poczatek);
editsection.appendChild(a)
editsection.appendChild(bracket_koniec);
hn.appendChild(editsection);
}
linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection!==null){
let mw_editsection_bracket=linkstrony_editsection.querySelector('a');
if(mw_editsection_bracket!==null){
if(czy_link_nie_w_naglowku){
let a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",StronicowyParser.kodowanie.EncodeHtml("/wiki/"+StronicowyParser.kodowanie.EncodeHtml(link_strona,false,true)));
a.setAttribute("title","Zobacz artykuł: "+link_strona);
let span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
let czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
if(czy_ma){
let rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
let span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}else{
let span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}
}
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
}
for (let i=0;i<liczba_elementow;++i){
let tagclassname=tagclass[i];
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==tagclassname){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
if(tagclassname.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let class_element=tagclassname.getElementsByClassName('strona_subst');
let element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let czy_link_nie_w_naglowku;
let strona_headline=tagclassname.getElementsByClassName('mw-headline');
let link_strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
link_strona=StronicowyParser.kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
if(link_strona!==null){
let re=/\/wiki\//g;
if(re.test(link_strona)){
link_strona=link_strona.substring(6,link_strona.length);
czy_link_nie_w_naglowku=false;
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}
}else{
link_strona=StronicowyParser.style.UsunStyle(element.innerHTML);
czy_link_nie_w_naglowku=true;
}
}
let re = /^[_\s]*$/g;
let dopasowanie = re.test(link_strona);
if(dopasowanie){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return;
};
link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&/g,"&").replace(/ /g," ");
let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /g,"_");
/**/
let hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
let strona=link_strona.match(/^[^#]*/g).toString();
async function PraceIteracyjne(tab_promise2){
await StronicowyParser.muteks.zablokuj();
if(/#/g.test(link_strona)){
let hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let numer=hn.innerHTML;
numer=parseInt(numer);
if(isNaN(numer)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return ;}
let tab_c=tab_section[c];
edit_action(numer,tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}else{
let uzupelniaj_sekcje_artykulow;
if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
uzupelniaj_sekcje_artykulow="tak";
}else{
uzupelniaj_sekcje_artykulow="";
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
let a=headline.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
a[0].setAttribute('title',stare);
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
}else{
edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
if(stronasubst_aktualizowanie_nazw_artykulow){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceIteracyjne(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
/**/
tabs[i]=link_strona;
let czy=false;
for(let d in titles){
if(titles[d]==link_strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=link_strona;
}
if(tabstrona[link_strona]==null){
tabstrona[link_strona]=new Array();
}
let tab=tabstrona[link_strona];
let tablen=tab.length;
tabstrona[link_strona][tablen]=element;
}
async function PraceNaglowki(tab_promise2){
await StronicowyParser.muteks.zablokuj();
let promise;
if(element_strony==document){
let namespace=StronicowyParser.pageinfo.namespace;
let strona_podrecznika=((namespace!="")?(namespace+":"):"")+StronicowyParser.pageinfo.bookname;
promise=Promise.resolve(strona_podrecznika);
}else{
let zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((zaan!==null)&&(zaan.length>0)){
let strona=zaan[0].getAttribute('nazwa_strony');
if(strona){
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}
if(tab_promise2){tab_promise2.push(true);}
promise.then(async (strona_podrecznika)=>{
await StronicowyParser.muteks.zablokuj();
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
let g=0;
let tab_naglowka=new Array();
let tab_hn=new Array();
for(let z=0;z<klasa_naglowka.length;++z){
let pojedyncza_klasa_naglowka=klasa_naglowka[z];
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
let dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
if(dana_klasa_naglowka!==null){
if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
let naglowek=StronicowyParser.style.UsunStyle(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let ww=1;
for(let x=0;x<tab_naglowka.length;++x){
if(tab_naglowka[x]==naglowek){
++ww;
}
}
naglowek=naglowek+((ww>1)?ww:"");
tab_naglowka[g]=naglowek;
tab_hn[g]=dana_klasa_naglowka.parentNode;
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, na stronie głównej podręcznika, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
let naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
edit_action(c+1,nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();return;}
let headline=tab_hn[c].querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
++g;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceNaglowki(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
function RozwazajNaglowki(){
let toc_fun=new StronicowyParser.ListaNodeTOC();
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
let ile_jest=0;
let li=toc_fun.toc[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(let dd=0;dd<li.length;++dd){
let element_li=li[dd];
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_li.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_li.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_li.querySelector('.tocnumber');
toctext_wartosc=element_li.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let czy_jest=undefined;
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
let element_klasa_naglowka=klasa_naglowka[ile_jest];
let headline=element_klasa_naglowka.querySelector('.mw-headline');
if((headline!==null)
&&(headline.parentNode!==null)
&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline.parentNode.parentNode!==null)
&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline.parentNode.parentNode===element_klasa_naglowka)
){
let element_a;
if(czy_side_bar_toc){
element_a=tocnumber.parentNode.parentNode;
}else{
element_a=tocnumber.parentNode;
}
if(element_a.tagName.toUpperCase()=="A"){
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let id_headline=headline.getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
if(czy_jest===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_tablica_rozdzialow[element_toctext]==null){
stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
}else{
stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
}
}
}
}
}
}
}
}
StronicowyParser.LimitTOC(true,stronasubst_ukrywaj_toc);
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],true,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(StronicowyParser.CzyWlaczycSideBarTOC(undefined,true))){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
RozwazajNaglowki();
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
$("div.mw-table-of-contents-container > nav.sidebar-toc ul > li > a > div.sidebar-toc-text").toggleClass("mathml");
}
function Strona(strona){
let strona_re=StronicowyParser.wzor.BezZnakowSpecjalnych(strona);
let re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
return re;
}
function CzyArtykulyZNaglowkamiDlaStrony(re){
for(let s in titles){
let czy_hash=titles[s].match(re);
if(czy_hash){
return true;
}
}
return false;
}
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
for ( let t in titles ) {
let strona=titles[t].match(/^[^#]*/g).toString();
let szablon_artykulu;
let re_strona=Strona(strona);
let czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
if(!czy_naglowki){
szablon_artykulu="{{:"+strona+"}}";
}else{
/*---------------------------------*/
let rozdzial1=null;
let re=/^([^#]*)#(.*)$/g;
if(re.test(titles[t])){
rozdzial1=titles[t].replace(re,"$2");
rozdzial1=rozdzial1.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial1="";}
let rozdzial2=null;
let tit=titles[parseInt(t)+1];
if( tit && re.test(tit) && re_strona.test(tit)){
rozdzial2=tit.replace(re,"$2");
rozdzial2=rozdzial2.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial2="";}
/*---------------------------*/
szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
}
szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona,
text: "<div class=\"hn hn_"+t+"\">\n"+szablon_artykulu+"\n</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);}
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function CzyszczenieZZdarzeńTableOfContent(){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
}
}
CzyszczenieZZdarzeńTableOfContent();
let tab_promise2=new StronicowyParser.SugerowaneObiekty();
async function CzyStronaSubst(element,aktualna_strona,tab_promise2){
if(tab_promise2){tab_promise2.push(true);}
await StronicowyParser.muteks.zablokuj();
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.expandtemplates.wikitext;
if((wikikod!==null)&&(aktualna_strona!==null)){
if(tab_promise2){tab_promise2.push(true);}
StronaSubst(element,wikikod,aktualna_strona,tab_promise2).then((result) => {}).catch((error) => {});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
if(tab_promise2){tab_promise2.push(true,true);}
CzyStronaSubst(document,aktualna_strona,tab_promise2);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
function Progress(){
var c=document.createElement('div');
c.setAttribute("id","pasek_postępu")
c.setAttribute('style','line-height:1.2em;margin-top:-2px;margin-left:-2px;position:absolute;width:250px;height:80px;border:1px solid black;box-sizing:border-box;padding:6px;background-color:white;display:flex;flex-direction:column;box-sizing:border-box;');
var label=document.createElement('label');
label.setAttribute('for','file1');
label.innerHTML="<span style=\"color:blue;\">Ukończone wątki: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_0=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file1')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;');
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_1=c.appendChild(progress);
var label=document.createElement('label');
label.setAttribute('for','file2');
label.innerHTML="<span style=\"color:blue;\">Zwolnione blokaty: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_1=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file2')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;')
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_2=c.appendChild(progress);
function PozycjaXY(){
c.style.top=(window.scrollY+document.documentElement.clientHeight-parseFloat(c.style.height))+"px";
c.style.left=(window.scrollX+document.documentElement.clientWidth-parseFloat(c.style.width))+"px";
}
document.querySelector('body').appendChild(c);
PozycjaXY();
$(window).on('scroll',PozycjaXY);
$(window).on('resize',PozycjaXY);
return new Array(element_body_progress_1,element_body_progress_2,span_0,span_1);
}
var arr;
function __FUNKCJA(arr){
arr[0].setAttribute("value","0");
arr[1].setAttribute("value","0");
let dodatnie_0=tab_promise2.lengthPlus;
let ujemne_0=tab_promise2.lengthMinus;
let dodatnie_1=StronicowyParser.muteks.LiczbaBlokatPlus;
let ujemne_1=StronicowyParser.muteks.LiczbaBlokatMinus;
let postep_0=((dodatnie_0>0)?((ujemne_0/dodatnie_0)*100):0);
let postep_1=((dodatnie_1>0)?((ujemne_1/dodatnie_1)*100):0);
arr[0].setAttribute("value",postep_0);
arr[1].setAttribute("value",postep_1);
arr[2].innerHTML=(parseInt(postep_0*1000)/1000)+"%";
arr[3].innerHTML=(parseInt(postep_1*1000)/1000)+"%";
}
StronicowyParser.CzekajNaZakaczenie(tab_promise2,null,StronicowyParser.muteks,(tab_promise)=>{arr=Progress();__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);setTimeout(function(){let node_postep=document.getElementById('pasek_postępu');$(node_postep).remove();},2000);}).then(async (result) => {}).catch(()=>{});
};
StronicowyParser.WyswietlStronyKsiazki().then((result) => {}).catch((error) => {});
});
nurnpnmoj4xldmktu7812r8dzbhmg36
437518
437505
2022-08-12T04:51:29Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.WyswietlStronyKsiazki=async function(){
await StronicowyParser.muteks.zablokuj();
let stronasubst_latex=undefined;
let stronasubst_mathml=undefined;
let stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
let stronasubst_ukrywaj_toc=undefined;
let stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
let stronasubst_aktualizowanie_nazw_artykulow=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
let stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
let stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
let stronasubst_nie_usuwaj_styli=undefined;
let stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'Strona zbiorcza',
'StronaSubst-description-page': 'Wikibooks:StronicowyParser/StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
{
name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
},
{
name: 'aktualizowanie_nazw_artykulow',
desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
},
{
name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
},
{
name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
},
{
name: 'nie_usuwaj_styli',
desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
},
{
name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
let stronasubst_tablica_tych_samych=new Array();
let stronasubst_tablica_rozdzialow=new Array();
let stronasubst_tablica_alternatywnych_nazw=new Array();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
async function AnalizujDalejSzablonSubst(element_strony,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let rozdzial_ksiazki="rozdział_książki";
let el=$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((el!==null)&&(el.length>0)){
for(let i=0;i<el.length;++i){
let element_el=el[i];
let ksiazka=element_el.querySelector("."+rozdzial_ksiazki);
if(ksiazka){
let nazwa_strony=element_el.getAttribute('nazwa_strony');
if(tab_promise2){tab_promise2.push(true);}
CzyStronaSubst(element_el,nazwa_strony,tab_promise2);
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
async function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let title=data.parse.title;
let wikikod=data.parse.text['*'];
let strona_hash;
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let t=tab_uzyskane[0];
if(t==undefined){
console.log("Nie wykryto znacznika lsth_\d+.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
strona_hash=titles[t];
let selflink=document.createElement('div');
selflink.innerHTML=wikikod;
let czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
let elements=tabstrona[strona_hash];
let a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(title));
a.innerHTML=strona_hash;
let span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","niw link");/*Dodawanie klasy, by inny skript JS to przeanalizował jako link*/
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo(span);
}
for(let q in elements){
let element=elements[q];
element.innerHTML="";
element.appendChild(span);
$(element).wrap(function(){return "<strong></strong>";});
let przed=document.createTextNode("{{:");
let po=document.createTextNode("}}");
element.insertBefore(przed,element.firstChild);
element.appendChild(po);
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=tab_uzyskane[1].innerHTML;
let elements=tabstrona[strona_hash];
for(let q in elements){
let element=elements[q];
element.innerHTML=wikikod;
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element,title,titles);
}
StronicowyParser.AktualizujSpisTresciModuluStrony(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml)
let strona_start=$(elements[0]).parents(".strona_start");
let rodzic=undefined;
if((strona_start!==null)&&(strona_start.length>0)){
rodzic=strona_start[0];
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,true);
for(let q in elements){
let element=elements[q];
async function ElementDalszychObliczen(element,tab_promise2){
await StronicowyParser.muteks.zablokuj(true);
StronicowyParser.PoprawRozdzialyStron(element);
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise2);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element,tab_promise2);
}
if((StronicowyParser.szablony&&StronicowyParser.szablony.LadujSzablon)&&(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst)){
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(element,title,titles,undefined,tab_promise).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(()=>{
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
ElementDalszychObliczen(element,tab_promise2);
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function ToogleTableOfContainer(panel){
let id=panel.target;
let tagname=id.tagName.toUpperCase();
//console.log(czy_klasa,tagname,"TYTAN)";
if(tagname=="BUTTON"){
let czy_klasa_1=$(id).hasClass('sidebar-toc-toggle');
let czy_klasa_2=$(id).hasClass('vector-toc-collapse-button');
if(czy_klasa_1){
$(id).parent().children().last().each((i,element)=>{
let expanded=$(id).attr('aria-expanded');
if(expanded=="false"){
$(element).css('display',"block");
$(element).closest('li').addClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','true');
}else if(expanded=="true"){
$(element).css('display',"none");
$(element).closest('li').removeClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','false');
}
});
}else if(czy_klasa_2){
$(id).parents('#sidebar-toc-label').siblings('ul').each((i,element)=>{
let ukryj=$(element).css('display');
if(ukryj!="none"){
$(element).css('display',"none");
id.innerHTML=" pokaż ";
}else{
$(element).css('display',"block");
id.innerHTML=" ukryj "
}
});
}
}
}
let mutekstoogle=new StronicowyParser.Muteks();
async function ScrollTableOfContainer(){
await mutekstoogle.zablokuj();
var height_sticky=0;
$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').first().each(function(i,el){
var rect_sticky=el.getBoundingClientRect();
height_sticky=rect_sticky.height-15;
});
let parser=document.querySelector('#mw-content-text .mw-parser-output');
if(parser){
let rect=parser.getBoundingClientRect();
if(rect.top>=height_sticky){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item').first().addClass('sidebar-toc-list-item-active');
mutekstoogle.odblokuj();
return;
}
}else{
mutekstoogle.odblokuj();
return;
}
var str=$('#mw-content-text .mw-parser-output').find('h1, h2, h3, h4, h5, h6');
if((str!==null)&&(str.length>0)){
var naglowek;
for(i=0;i<str.length;++i){
let element=str[i];
let rect=element.getBoundingClientRect();
if(rect.top>=height_sticky){
let mw_naglowek=element.querySelector('.mw-headline');
if(mw_naglowek){
let id_naglowek=mw_naglowek.getAttribute('id');
let tak=false;
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+id_naglowek){
let display=window.getComputedStyle(element, null).getPropertyValue('display');
if(display!="none"){
tak=true;
}
}
});
if(tak){
naglowek=id_naglowek;
break;
}
}
}
}
if(naglowek){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+naglowek){
$(element).addClass('sidebar-toc-list-item-active');
}
});
}
}
mutekstoogle.odblokuj();
}
async function StronaSubst(element_strony,wikikod,aktualna_strona,tab_promise2){
await StronicowyParser.muteks.zablokuj();
StronicowyParser.NaprawNaglowkiStrony(element_strony,true);
let czy_wikikod=wikikod.match(/^[_\s]*$/g);
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
function CzyWszystkieNaglowkiWewnatrzStronaStart(){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return false;
}
}
return true;
}
if(czy_wikikod){
StronicowyParser.muteks.odblokuj();
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
let czy_numerowac=StronicowyParser.CzyWlaczycSideBarTOC(undefined,true);
if(czy_numerowac){
czy_numerowac=false;
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+StronicowyParser.pageinfo.fullname+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
czy_numerowac=true;
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
let tab_promise=new Array(true);
StronicowyParser.LimitTOC(czy_numerowac,stronasubst_ukrywaj_toc);
StronicowyParser.szablony.LadujSzablon(null,null,null,czy_numerowac,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true)
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
$(".spis_treści").has('ul li a').css('visibility',"visible");
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(czy_numerowac)){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
return;
}
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(null,null,null,undefined,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async (result) => {
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise).then(async (result) => {}).catch(()=>{});
await StronicowyParser.muteks.zablokuj();
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
let rozdzial_ksiazki="rozdział_książki";
let tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return null;
}
let liczba_elementow=tagclass.length;
if(liczba_elementow==0){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return null;
}
let titles=new Array();
let tabstrona=new Array();
let tabs=new Array();
let tab_section=new Array();
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element_strony,tab_promise2);
}
let tab_hn=new Array();
async function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
await StronicowyParser.muteks.zablokuj();
let linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection===null){
let editsection=document.createElement('span');
editsection.classList.add('mw-editsection');
let bracket_poczatek=document.createElement('span');
bracket_poczatek.classList.add('mw-editsection-bracket')
bracket_poczatek.innerHTML="[";
let a=document.createElement('a');
a.setAttribute('href',"/w/index.php?title="+StronicowyParser.kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("§ion="+numer):""));
a.setAttribute('title',"Edytuj artykuł: "+link_strona);
a.innerHTML="edytuj";
let bracket_koniec=document.createElement('span');
bracket_koniec.classList.add('mw-editsection-bracket')
bracket_koniec.innerHTML="]";
editsection.appendChild(bracket_poczatek);
editsection.appendChild(a)
editsection.appendChild(bracket_koniec);
hn.appendChild(editsection);
}
linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection!==null){
let mw_editsection_bracket=linkstrony_editsection.querySelector('a');
if(mw_editsection_bracket!==null){
if(czy_link_nie_w_naglowku){
let a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",StronicowyParser.kodowanie.EncodeHtml("/wiki/"+StronicowyParser.kodowanie.EncodeHtml(link_strona,false,true)));
a.setAttribute("title","Zobacz artykuł: "+link_strona);
let span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
let czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
if(czy_ma){
let rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
let span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}else{
let span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}
}
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
}
for (let i=0;i<liczba_elementow;++i){
let tagclassname=tagclass[i];
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==tagclassname){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
if(tagclassname.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let class_element=tagclassname.getElementsByClassName('strona_subst');
let element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let czy_link_nie_w_naglowku;
let strona_headline=tagclassname.getElementsByClassName('mw-headline');
let link_strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
link_strona=StronicowyParser.kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
if(link_strona!==null){
let re=/\/wiki\//g;
if(re.test(link_strona)){
link_strona=link_strona.substring(6,link_strona.length);
czy_link_nie_w_naglowku=false;
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}
}else{
link_strona=StronicowyParser.style.UsunStyle(element.innerHTML);
czy_link_nie_w_naglowku=true;
}
}
let re = /^[_\s]*$/g;
let dopasowanie = re.test(link_strona);
if(dopasowanie){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return;
};
link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&/g,"&").replace(/ /g," ");
let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /g,"_");
/**/
let hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
let strona=link_strona.match(/^[^#]*/g).toString();
async function PraceIteracyjne(tab_promise2){
await StronicowyParser.muteks.zablokuj();
if(/#/g.test(link_strona)){
let hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let numer=hn.innerHTML;
numer=parseInt(numer);
if(isNaN(numer)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return ;}
let tab_c=tab_section[c];
edit_action(numer,tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}else{
let uzupelniaj_sekcje_artykulow;
if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
uzupelniaj_sekcje_artykulow="tak";
}else{
uzupelniaj_sekcje_artykulow="";
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
let a=headline.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
a[0].setAttribute('title',stare);
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
}else{
edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
if(stronasubst_aktualizowanie_nazw_artykulow){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceIteracyjne(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
/**/
tabs[i]=link_strona;
let czy=false;
for(let d in titles){
if(titles[d]==link_strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=link_strona;
}
if(tabstrona[link_strona]==null){
tabstrona[link_strona]=new Array();
}
let tab=tabstrona[link_strona];
let tablen=tab.length;
tabstrona[link_strona][tablen]=element;
}
async function PraceNaglowki(tab_promise2){
await StronicowyParser.muteks.zablokuj();
let promise;
if(element_strony==document){
let namespace=StronicowyParser.pageinfo.namespace;
let strona_podrecznika=((namespace!="")?(namespace+":"):"")+StronicowyParser.pageinfo.bookname;
promise=Promise.resolve(strona_podrecznika);
}else{
let zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((zaan!==null)&&(zaan.length>0)){
let strona=zaan[0].getAttribute('nazwa_strony');
if(strona){
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}
if(tab_promise2){tab_promise2.push(true);}
promise.then(async (strona_podrecznika)=>{
await StronicowyParser.muteks.zablokuj();
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
let g=0;
let tab_naglowka=new Array();
let tab_hn=new Array();
for(let z=0;z<klasa_naglowka.length;++z){
let pojedyncza_klasa_naglowka=klasa_naglowka[z];
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
let dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
if(dana_klasa_naglowka!==null){
if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
let naglowek=StronicowyParser.style.UsunStyle(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let ww=1;
for(let x=0;x<tab_naglowka.length;++x){
if(tab_naglowka[x]==naglowek){
++ww;
}
}
naglowek=naglowek+((ww>1)?ww:"");
tab_naglowka[g]=naglowek;
tab_hn[g]=dana_klasa_naglowka.parentNode;
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, na stronie głównej podręcznika, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
let naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
edit_action(c+1,nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();return;}
let headline=tab_hn[c].querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
++g;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceNaglowki(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
function RozwazajNaglowki(){
let toc_fun=new StronicowyParser.ListaNodeTOC();
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
let ile_jest=0;
let li=toc_fun.toc[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(let dd=0;dd<li.length;++dd){
let element_li=li[dd];
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_li.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_li.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_li.querySelector('.tocnumber');
toctext_wartosc=element_li.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let czy_jest=undefined;
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
let element_klasa_naglowka=klasa_naglowka[ile_jest];
let headline=element_klasa_naglowka.querySelector('.mw-headline');
if((headline!==null)
&&(headline.parentNode!==null)
&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline.parentNode.parentNode!==null)
&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline.parentNode.parentNode===element_klasa_naglowka)
){
let element_a;
if(czy_side_bar_toc){
element_a=tocnumber.parentNode.parentNode;
}else{
element_a=tocnumber.parentNode;
}
if(element_a.tagName.toUpperCase()=="A"){
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let id_headline=headline.getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
if(czy_jest===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_tablica_rozdzialow[element_toctext]==null){
stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
}else{
stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
}
}
}
}
}
}
}
}
StronicowyParser.LimitTOC(true,stronasubst_ukrywaj_toc);
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],true,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
$(".spis_treści").has('ul li a').css('visibility',"visible");
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(StronicowyParser.CzyWlaczycSideBarTOC(undefined,true))){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
RozwazajNaglowki();
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
$("div.mw-table-of-contents-container > nav.sidebar-toc ul > li > a > div.sidebar-toc-text").toggleClass("mathml");
}
function Strona(strona){
let strona_re=StronicowyParser.wzor.BezZnakowSpecjalnych(strona);
let re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
return re;
}
function CzyArtykulyZNaglowkamiDlaStrony(re){
for(let s in titles){
let czy_hash=titles[s].match(re);
if(czy_hash){
return true;
}
}
return false;
}
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
for ( let t in titles ) {
let strona=titles[t].match(/^[^#]*/g).toString();
let szablon_artykulu;
let re_strona=Strona(strona);
let czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
if(!czy_naglowki){
szablon_artykulu="{{:"+strona+"}}";
}else{
/*---------------------------------*/
let rozdzial1=null;
let re=/^([^#]*)#(.*)$/g;
if(re.test(titles[t])){
rozdzial1=titles[t].replace(re,"$2");
rozdzial1=rozdzial1.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial1="";}
let rozdzial2=null;
let tit=titles[parseInt(t)+1];
if( tit && re.test(tit) && re_strona.test(tit)){
rozdzial2=tit.replace(re,"$2");
rozdzial2=rozdzial2.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial2="";}
/*---------------------------*/
szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
}
szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona,
text: "<div class=\"hn hn_"+t+"\">\n"+szablon_artykulu+"\n</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);}
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function CzyszczenieZZdarzeńTableOfContent(){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
}
}
CzyszczenieZZdarzeńTableOfContent();
let tab_promise2=new StronicowyParser.SugerowaneObiekty();
async function CzyStronaSubst(element,aktualna_strona,tab_promise2){
if(tab_promise2){tab_promise2.push(true);}
await StronicowyParser.muteks.zablokuj();
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.expandtemplates.wikitext;
if((wikikod!==null)&&(aktualna_strona!==null)){
if(tab_promise2){tab_promise2.push(true);}
StronaSubst(element,wikikod,aktualna_strona,tab_promise2).then((result) => {}).catch((error) => {});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
if(tab_promise2){tab_promise2.push(true,true);}
CzyStronaSubst(document,aktualna_strona,tab_promise2);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
function Progress(){
var c=document.createElement('div');
c.setAttribute("id","pasek_postępu")
c.setAttribute('style','line-height:1.2em;margin-top:-2px;margin-left:-2px;position:absolute;width:250px;height:80px;border:1px solid black;box-sizing:border-box;padding:6px;background-color:white;display:flex;flex-direction:column;box-sizing:border-box;');
var label=document.createElement('label');
label.setAttribute('for','file1');
label.innerHTML="<span style=\"color:blue;\">Ukończone wątki: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_0=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file1')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;');
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_1=c.appendChild(progress);
var label=document.createElement('label');
label.setAttribute('for','file2');
label.innerHTML="<span style=\"color:blue;\">Zwolnione blokaty: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_1=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file2')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;')
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_2=c.appendChild(progress);
function PozycjaXY(){
c.style.top=(window.scrollY+document.documentElement.clientHeight-parseFloat(c.style.height))+"px";
c.style.left=(window.scrollX+document.documentElement.clientWidth-parseFloat(c.style.width))+"px";
}
document.querySelector('body').appendChild(c);
PozycjaXY();
$(window).on('scroll',PozycjaXY);
$(window).on('resize',PozycjaXY);
return new Array(element_body_progress_1,element_body_progress_2,span_0,span_1);
}
var arr;
function __FUNKCJA(arr){
arr[0].setAttribute("value","0");
arr[1].setAttribute("value","0");
let dodatnie_0=tab_promise2.lengthPlus;
let ujemne_0=tab_promise2.lengthMinus;
let dodatnie_1=StronicowyParser.muteks.LiczbaBlokatPlus;
let ujemne_1=StronicowyParser.muteks.LiczbaBlokatMinus;
let postep_0=((dodatnie_0>0)?((ujemne_0/dodatnie_0)*100):0);
let postep_1=((dodatnie_1>0)?((ujemne_1/dodatnie_1)*100):0);
arr[0].setAttribute("value",postep_0);
arr[1].setAttribute("value",postep_1);
arr[2].innerHTML=(parseInt(postep_0*1000)/1000)+"%";
arr[3].innerHTML=(parseInt(postep_1*1000)/1000)+"%";
}
StronicowyParser.CzekajNaZakaczenie(tab_promise2,null,StronicowyParser.muteks,(tab_promise)=>{arr=Progress();__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);setTimeout(function(){let node_postep=document.getElementById('pasek_postępu');$(node_postep).remove();},2000);}).then(async (result) => {}).catch(()=>{});
};
StronicowyParser.WyswietlStronyKsiazki().then((result) => {}).catch((error) => {});
});
8b7a6r4oormo55tca1rs6s1dzi7au6m
437520
437518
2022-08-12T05:12:32Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.WyswietlStronyKsiazki=async function(){
await StronicowyParser.muteks.zablokuj();
let stronasubst_latex=undefined;
let stronasubst_mathml=undefined;
let stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
let stronasubst_ukrywaj_toc=undefined;
let stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
let stronasubst_aktualizowanie_nazw_artykulow=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
let stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
let stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
let stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
let stronasubst_nie_usuwaj_styli=undefined;
let stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'Strona zbiorcza',
'StronaSubst-description-page': 'Wikibooks:StronicowyParser/StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
{
name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
},
{
name: 'aktualizowanie_nazw_artykulow',
desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
},
{
name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
},
{
name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
},
{
name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
},
{
name: 'nie_usuwaj_styli',
desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
},
{
name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
}
//let podglad=document.querySelector('body:not(.action-view)');
//if(podglad){return;}
let stronasubst_tablica_tych_samych=new Array();
let stronasubst_tablica_rozdzialow=new Array();
let stronasubst_tablica_alternatywnych_nazw=new Array();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
async function AnalizujDalejSzablonSubst(element_strony,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let rozdzial_ksiazki="rozdział_książki";
let el=$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((el!==null)&&(el.length>0)){
for(let i=0;i<el.length;++i){
let element_el=el[i];
let ksiazka=element_el.querySelector("."+rozdzial_ksiazki);
if(ksiazka){
let nazwa_strony=element_el.getAttribute('nazwa_strony');
if(tab_promise2){tab_promise2.push(true);}
CzyStronaSubst(element_el,nazwa_strony,tab_promise2);
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
async function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2){
await StronicowyParser.muteks.zablokuj();
let title=data.parse.title;
let wikikod=data.parse.text['*'];
let strona_hash;
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let t=tab_uzyskane[0];
if(t==undefined){
console.log("Nie wykryto znacznika lsth_\d+.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
strona_hash=titles[t];
let selflink=document.createElement('div');
selflink.innerHTML=wikikod;
let czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
let elements=tabstrona[strona_hash];
let a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(title));
a.innerHTML=strona_hash;
let span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","niw link");/*Dodawanie klasy, by inny skript JS to przeanalizował jako link*/
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuElementuInfo(span);
}
for(let q in elements){
let element=elements[q];
element.innerHTML="";
element.appendChild(span);
$(element).wrap(function(){return "<strong></strong>";});
let przed=document.createTextNode("{{:");
let po=document.createTextNode("}}");
element.insertBefore(przed,element.firstChild);
element.appendChild(po);
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=tab_uzyskane[1].innerHTML;
let elements=tabstrona[strona_hash];
for(let q in elements){
let element=elements[q];
element.innerHTML=wikikod;
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element,title,titles);
}
StronicowyParser.AktualizujSpisTresciModuluStrony(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml)
let strona_start=$(elements[0]).parents(".strona_start");
let rodzic=undefined;
if((strona_start!==null)&&(strona_start.length>0)){
rodzic=strona_start[0];
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,true);
for(let q in elements){
let element=elements[q];
async function ElementDalszychObliczen(element,tab_promise2){
await StronicowyParser.muteks.zablokuj(true);
StronicowyParser.PoprawRozdzialyStron(element);
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise2);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,tab_promise2).then((result) => {}).catch((error) => {});
}
element.style.display="block";
let parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
let pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
if(pasek!==null){
element.parentNode.removeChild(pasek);
}
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element,tab_promise2);
}
if((StronicowyParser.szablony&&StronicowyParser.szablony.LadujSzablon)&&(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst)){
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(element,title,titles,undefined,tab_promise).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(()=>{
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
ElementDalszychObliczen(element,tab_promise2);
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function ToogleTableOfContainer(panel){
let id=panel.target;
let tagname=id.tagName.toUpperCase();
//console.log(czy_klasa,tagname,"TYTAN)";
if(tagname=="BUTTON"){
let czy_klasa_1=$(id).hasClass('sidebar-toc-toggle');
let czy_klasa_2=$(id).hasClass('vector-toc-collapse-button');
if(czy_klasa_1){
$(id).parent().children().last().each((i,element)=>{
let expanded=$(id).attr('aria-expanded');
if(expanded=="false"){
$(element).css('display',"block");
$(element).closest('li').addClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','true');
}else if(expanded=="true"){
$(element).css('display',"none");
$(element).closest('li').removeClass('sidebar-toc-list-item-expanded');
$(id).attr('aria-expanded','false');
}
});
}else if(czy_klasa_2){
$(id).parents('#sidebar-toc-label').siblings('ul').each((i,element)=>{
let ukryj=$(element).css('display');
if(ukryj!="none"){
$(element).css('display',"none");
id.innerHTML=" pokaż ";
}else{
$(element).css('display',"block");
id.innerHTML=" ukryj "
}
});
}
}
}
let mutekstoogle=new StronicowyParser.Muteks();
async function ScrollTableOfContainer(){
await mutekstoogle.zablokuj();
var height_sticky=0;
$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').first().each(function(i,el){
var rect_sticky=el.getBoundingClientRect();
height_sticky=rect_sticky.height-15;
});
let parser=document.querySelector('#mw-content-text .mw-parser-output');
if(parser){
let rect=parser.getBoundingClientRect();
if(rect.top>=height_sticky){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item').first().addClass('sidebar-toc-list-item-active');
mutekstoogle.odblokuj();
return;
}
}else{
mutekstoogle.odblokuj();
return;
}
var str=$('#mw-content-text .mw-parser-output').find('h1, h2, h3, h4, h5, h6');
if((str!==null)&&(str.length>0)){
var naglowek;
for(i=0;i<str.length;++i){
let element=str[i];
let rect=element.getBoundingClientRect();
if(rect.top>=height_sticky){
let mw_naglowek=element.querySelector('.mw-headline');
if(mw_naglowek){
let id_naglowek=mw_naglowek.getAttribute('id');
let tak=false;
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+id_naglowek){
let display=window.getComputedStyle(element, null).getPropertyValue('display');
if(display!="none"){
tak=true;
}
}
});
if(tak){
naglowek=id_naglowek;
break;
}
}
}
}
if(naglowek){
$('.mw-table-of-contents-container > #mw-panel-toc li.sidebar-toc-list-item.sidebar-toc-list-item-active').each((i,element)=>{
$(element).removeClass('sidebar-toc-list-item-active');
});
$('.mw-table-of-contents-container > #mw-panel-toc ul').find('li.sidebar-toc-list-item').each((i,element)=>{
if(element.getAttribute('id')=='toc-'+naglowek){
$(element).addClass('sidebar-toc-list-item-active');
}
});
}
}
mutekstoogle.odblokuj();
}
async function StronaSubst(element_strony,wikikod,aktualna_strona,tab_promise2){
await StronicowyParser.muteks.zablokuj();
StronicowyParser.NaprawNaglowkiStrony(element_strony,true);
let czy_wikikod=wikikod.match(/^[_\s]*$/g);
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
function CzyWszystkieNaglowkiWewnatrzStronaStart(){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return false;
}
}
return true;
}
if(czy_wikikod){
StronicowyParser.muteks.odblokuj();
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
let czy_numerowac=StronicowyParser.CzyWlaczycSideBarTOC(undefined,true);
if(czy_numerowac){
czy_numerowac=false;
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+StronicowyParser.pageinfo.fullname+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
czy_numerowac=true;
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
let tab_promise=new Array(true);
StronicowyParser.LimitTOC(czy_numerowac,stronasubst_ukrywaj_toc);
StronicowyParser.szablony.LadujSzablon(null,null,null,czy_numerowac,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true)
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async()=>{
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,stronasubst_latex,stronasubst_mathml);
}
$("#mw-content-text .mw-parser-output .spis_treści").has('ul li a').css('visibility',"visible");
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(czy_numerowac)){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
if(tab_promise2){tab_promise2.pop();}
return;
}
let tab_promise=new Array(true);
StronicowyParser.szablony.LadujSzablon(null,null,null,undefined,tab_promise);
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika();
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_strony,tab_promise);
tab_promise.push(true);
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_strony,tab_promise);
if(tab_promise2){tab_promise2.push(true);tab_promise2.push(true);}
StronicowyParser.CzekajNaZakaczenie(tab_promise,tab_promise2).then(async (result) => {
let tab_promise=new Array();
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow)){
tab_promise.push(true);
StronicowyParser.numerowanie.NumerujRozdzialyPrzedSciaganiemArtykulow(tab_promise).then((result) => {}).catch((error) => {});//Funkcja jako gadżet do numerowania rozdziałów.
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise).then(async (result) => {}).catch(()=>{});
await StronicowyParser.muteks.zablokuj();
if(tab_promise2){tab_promise2.push(true);}
AnalizujDalejSzablonSubst(element_strony,tab_promise2);
let rozdzial_ksiazki="rozdział_książki";
let tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return null;
}
let liczba_elementow=tagclass.length;
if(liczba_elementow==0){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return null;
}
let titles=new Array();
let tabstrona=new Array();
let tabs=new Array();
let tab_section=new Array();
if(StronicowyParser.TrybCiemnyIJasny){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.TrybCiemnyIJasny(element_strony,tab_promise2);
}
let tab_hn=new Array();
async function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
await StronicowyParser.muteks.zablokuj();
let linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection===null){
let editsection=document.createElement('span');
editsection.classList.add('mw-editsection');
let bracket_poczatek=document.createElement('span');
bracket_poczatek.classList.add('mw-editsection-bracket')
bracket_poczatek.innerHTML="[";
let a=document.createElement('a');
a.setAttribute('href',"/w/index.php?title="+StronicowyParser.kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("§ion="+numer):""));
a.setAttribute('title',"Edytuj artykuł: "+link_strona);
a.innerHTML="edytuj";
let bracket_koniec=document.createElement('span');
bracket_koniec.classList.add('mw-editsection-bracket')
bracket_koniec.innerHTML="]";
editsection.appendChild(bracket_poczatek);
editsection.appendChild(a)
editsection.appendChild(bracket_koniec);
hn.appendChild(editsection);
}
linkstrony_editsection=hn.querySelector('.mw-editsection');
if(linkstrony_editsection!==null){
let mw_editsection_bracket=linkstrony_editsection.querySelector('a');
if(mw_editsection_bracket!==null){
if(czy_link_nie_w_naglowku){
let a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",StronicowyParser.kodowanie.EncodeHtml("/wiki/"+StronicowyParser.kodowanie.EncodeHtml(link_strona,false,true)));
a.setAttribute("title","Zobacz artykuł: "+link_strona);
let span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
let czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
if(czy_ma){
let rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
let span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}else{
let span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
linkstrony_editsection.insertBefore(a, span2);
}
}
}
if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
}
for (let i=0;i<liczba_elementow;++i){
let tagclassname=tagclass[i];
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==tagclassname){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
if(tagclassname.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let class_element=tagclassname.getElementsByClassName('strona_subst');
let element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let czy_link_nie_w_naglowku;
let strona_headline=tagclassname.getElementsByClassName('mw-headline');
let link_strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
link_strona=StronicowyParser.kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
if(link_strona!==null){
let re=/\/wiki\//g;
if(re.test(link_strona)){
link_strona=link_strona.substring(6,link_strona.length);
czy_link_nie_w_naglowku=false;
}else{
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
}
}else{
link_strona=StronicowyParser.style.UsunStyle(element.innerHTML);
czy_link_nie_w_naglowku=true;
}
}
let re = /^[_\s]*$/g;
let dopasowanie = re.test(link_strona);
if(dopasowanie){
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();};
return;
};
link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&/g,"&").replace(/ /g," ");
let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /g,"_");
/**/
let hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
let strona=link_strona.match(/^[^#]*/g).toString();
async function PraceIteracyjne(tab_promise2){
await StronicowyParser.muteks.zablokuj();
if(/#/g.test(link_strona)){
let hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let numer=hn.innerHTML;
numer=parseInt(numer);
if(isNaN(numer)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return ;}
let tab_c=tab_section[c];
edit_action(numer,tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}else{
let uzupelniaj_sekcje_artykulow;
if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
uzupelniaj_sekcje_artykulow="tak";
}else{
uzupelniaj_sekcje_artykulow="";
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
let a=headline.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
a[0].setAttribute('title',stare);
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
}else{
edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
if(stronasubst_aktualizowanie_nazw_artykulow){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+i+"\">{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();if(tab_promise2){tab_promise2.pop();};return;}
let tab_c=tab_section[c];
let hn_element=tab_c[0];
let headline=hn_element.querySelector('.mw-headline');
let stare=tab_section[c][1];let nowe;
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
wikikod=StronicowyParser.style.UsunStyle(wikikod);
nowe=wikikod.replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}else{
nowe=StronicowyParser.style.UsunStyle(wikikod).replace(/<[^<>]+>/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
}
stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
headline.innerHTML=wikikod;
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceIteracyjne(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
/**/
tabs[i]=link_strona;
let czy=false;
for(let d in titles){
if(titles[d]==link_strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=link_strona;
}
if(tabstrona[link_strona]==null){
tabstrona[link_strona]=new Array();
}
let tab=tabstrona[link_strona];
let tablen=tab.length;
tabstrona[link_strona][tablen]=element;
}
async function PraceNaglowki(tab_promise2){
await StronicowyParser.muteks.zablokuj();
let promise;
if(element_strony==document){
let namespace=StronicowyParser.pageinfo.namespace;
let strona_podrecznika=((namespace!="")?(namespace+":"):"")+StronicowyParser.pageinfo.bookname;
promise=Promise.resolve(strona_podrecznika);
}else{
let zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
if((zaan!==null)&&(zaan.length>0)){
let strona=zaan[0].getAttribute('nazwa_strony');
if(strona){
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}else{
promise=StronicowyParser.nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
}
}
if(tab_promise2){tab_promise2.push(true);}
promise.then(async (strona_podrecznika)=>{
await StronicowyParser.muteks.zablokuj();
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
let potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
let g=0;
let tab_naglowka=new Array();
let tab_hn=new Array();
for(let z=0;z<klasa_naglowka.length;++z){
let pojedyncza_klasa_naglowka=klasa_naglowka[z];
function CzyOdrzucic(){
for(let i=0;i<potomek_analizowany.length;++i){
if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
return true;
}
}
return false;
}
if(CzyOdrzucic()){continue;}
let dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
if(dana_klasa_naglowka!==null){
if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
let naglowek=StronicowyParser.style.UsunStyle(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let ww=1;
for(let x=0;x<tab_naglowka.length;++x){
if(tab_naglowka[x]==naglowek){
++ww;
}
}
naglowek=naglowek+((ww>1)?ww:"");
tab_naglowka[g]=naglowek;
tab_hn[g]=dana_klasa_naglowka.parentNode;
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, na stronie głównej podręcznika, która podaje numer sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
let nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
let naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
edit_action(c+1,nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text',
title: aktualna_strona,
text: "<div class=\"hn hn_"+g+"\">{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let tab_uzyskane=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod);
let c=tab_uzyskane[0];let hn=tab_uzyskane[1];
if(c===undefined){
console.log("Nie wykryto znacznika hn_\d+ dla strony, która podaje nazwę sekcji na podstawie jego id.");
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
return;
}
wikikod=hn.innerHTML;
if(/^\s*$/g.test(wikikod)){StronicowyParser.muteks.odblokuj();return;}
let headline=tab_hn[c].querySelector('.mw-headline');
if(!stronasubst_nie_usuwaj_styli){
StronicowyParser.style.PrzeniesStyleNaPoczatekArtykulu(wikikod);
headline.innerHTML=StronicowyParser.style.UsunStyle(wikikod);
}else{
headline.innerHTML=wikikod;
}
StronicowyParser.ZamieniajNazwyLinkuTOC(headline,true,stronasubst_latex);
if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo){
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline).then((result) => {}).catch((error) => {});
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
++g;
}
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
if(tab_promise2){tab_promise2.push(true);}
setTimeout(()=>{
PraceNaglowki(tab_promise2).then((result) => {}).catch((error) => {});
},1000);
function RozwazajNaglowki(){
let toc_fun=new StronicowyParser.ListaNodeTOC();
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
let ile_jest=0;
let li=toc_fun.toc[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(let dd=0;dd<li.length;++dd){
let element_li=li[dd];
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_li.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_li.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_li.querySelector('.tocnumber');
toctext_wartosc=element_li.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let czy_jest=undefined;
let klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
let element_klasa_naglowka=klasa_naglowka[ile_jest];
let headline=element_klasa_naglowka.querySelector('.mw-headline');
if((headline!==null)
&&(headline.parentNode!==null)
&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline.parentNode.parentNode!==null)
&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline.parentNode.parentNode===element_klasa_naglowka)
){
let element_a;
if(czy_side_bar_toc){
element_a=tocnumber.parentNode.parentNode;
}else{
element_a=tocnumber.parentNode;
}
if(element_a.tagName.toUpperCase()=="A"){
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let id_headline=headline.getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
}else{czy_jest=true;}
if(czy_jest===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_tablica_rozdzialow[element_toctext]==null){
stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
}else{
stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
}
}
}
}
}
}
}
}
StronicowyParser.LimitTOC(true,stronasubst_ukrywaj_toc);
if(CzyWszystkieNaglowkiWewnatrzStronaStart()){
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],true,stronasubst_latex,stronasubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,true,stronasubst_latex,stronasubst_mathml);
}
$("#mw-content-text .mw-parser-output .spis_treści").has('ul li a').css('visibility',"visible");
if(globalne_zmienne.SideBarToc){SideBarToc();}
if(globalne_zmienne.ScrollBarOverflow){ScrollBarOverflow();}
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if((action_view)&&(StronicowyParser.CzyWlaczycSideBarTOC(undefined,true))){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').on('click',function(e){
ToogleTableOfContainer(e);
ScrollTableOfContainer(e);
});
$('body.skin-vector-search-vue .mw-table-of-contents-container #mw-panel-toc').hover(ScrollTableOfContainer,ScrollTableOfContainer);
ScrollTableOfContainer();
$(window).on('scroll',ScrollTableOfContainer);
}
}
RozwazajNaglowki();
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
$("div.mw-table-of-contents-container > nav.sidebar-toc ul > li > a > div.sidebar-toc-text").toggleClass("mathml");
}
function Strona(strona){
let strona_re=StronicowyParser.wzor.BezZnakowSpecjalnych(strona);
let re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
return re;
}
function CzyArtykulyZNaglowkamiDlaStrony(re){
for(let s in titles){
let czy_hash=titles[s].match(re);
if(czy_hash){
return true;
}
}
return false;
}
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
for ( let t in titles ) {
let strona=titles[t].match(/^[^#]*/g).toString();
let szablon_artykulu;
let re_strona=Strona(strona);
let czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
if(!czy_naglowki){
szablon_artykulu="{{:"+strona+"}}";
}else{
/*---------------------------------*/
let rozdzial1=null;
let re=/^([^#]*)#(.*)$/g;
if(re.test(titles[t])){
rozdzial1=titles[t].replace(re,"$2");
rozdzial1=rozdzial1.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial1="";}
let rozdzial2=null;
let tit=titles[parseInt(t)+1];
if( tit && re.test(tit) && re_strona.test(tit)){
rozdzial2=tit.replace(re,"$2");
rozdzial2=rozdzial2.replace(/&/g,"&").replace(/ /g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
}else{rozdzial2="";}
/*---------------------------*/
szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
}
szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"
}
if(tab_promise2){tab_promise2.push(true);}
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona,
text: "<div class=\"hn hn_"+t+"\">\n"+szablon_artykulu+"\n</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
if(tab_promise2){tab_promise2.push(true);}
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml,tab_promise2).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch(()=>{if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
function CzyszczenieZZdarzeńTableOfContent(){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector!==null)&&(toc_nowy_vector.length>0)){
let sidebartoc=toc_nowy_vector.children('.sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){
let kopia=sidebartoc[0].cloneNode(true);
$(sidebartoc[0]).parent().each((i,rodzic)=>{
rodzic.replaceChild(kopia,sidebartoc[0]);
});
}
}
}
CzyszczenieZZdarzeńTableOfContent();
let tab_promise2=new StronicowyParser.SugerowaneObiekty();
async function CzyStronaSubst(element,aktualna_strona,tab_promise2){
if(tab_promise2){tab_promise2.push(true);}
await StronicowyParser.muteks.zablokuj();
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.expandtemplates.wikitext;
if((wikikod!==null)&&(aktualna_strona!==null)){
if(tab_promise2){tab_promise2.push(true);}
StronaSubst(element,wikikod,aktualna_strona,tab_promise2).then((result) => {}).catch((error) => {});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}).catch((error) => {if(tab_promise2){tab_promise2.pop();}});
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
if(tab_promise2){tab_promise2.push(true,true);}
CzyStronaSubst(document,aktualna_strona,tab_promise2);
StronicowyParser.muteks.odblokuj();
if(tab_promise2){tab_promise2.pop();}
function Progress(){
var c=document.createElement('div');
c.setAttribute("id","pasek_postępu")
c.setAttribute('style','line-height:1.2em;margin-top:-2px;margin-left:-2px;position:absolute;width:250px;height:80px;border:1px solid black;box-sizing:border-box;padding:6px;background-color:white;display:flex;flex-direction:column;box-sizing:border-box;');
var label=document.createElement('label');
label.setAttribute('for','file1');
label.innerHTML="<span style=\"color:blue;\">Ukończone wątki: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_0=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file1')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;');
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_1=c.appendChild(progress);
var label=document.createElement('label');
label.setAttribute('for','file2');
label.innerHTML="<span style=\"color:blue;\">Zwolnione blokaty: </span>";
label.setAttribute('style','font-size:17px;padding-right:10px;padding-left:10px;height:100%;box-sizing:border-box;');
var span=document.createElement('span');
span.innerHTML="0%";
var span_1=label.appendChild(span);
c.appendChild(label);
var progress=document.createElement('progress');
progress.innerHTML="0%";
progress.setAttribute('id','file2')
progress.setAttribute('style','margin-left:5px;width:95%;height:100%;box-sizing:border-box;')
progress.setAttribute("max","100");
progress.setAttribute('value',"0");
var element_body_progress_2=c.appendChild(progress);
function PozycjaXY(){
c.style.top=(window.scrollY+document.documentElement.clientHeight-parseFloat(c.style.height))+"px";
c.style.left=(window.scrollX+document.documentElement.clientWidth-parseFloat(c.style.width))+"px";
}
document.querySelector('body').appendChild(c);
PozycjaXY();
$(window).on('scroll',PozycjaXY);
$(window).on('resize',PozycjaXY);
return new Array(element_body_progress_1,element_body_progress_2,span_0,span_1);
}
var arr;
function __FUNKCJA(arr){
arr[0].setAttribute("value","0");
arr[1].setAttribute("value","0");
let dodatnie_0=tab_promise2.lengthPlus;
let ujemne_0=tab_promise2.lengthMinus;
let dodatnie_1=StronicowyParser.muteks.LiczbaBlokatPlus;
let ujemne_1=StronicowyParser.muteks.LiczbaBlokatMinus;
let postep_0=((dodatnie_0>0)?((ujemne_0/dodatnie_0)*100):0);
let postep_1=((dodatnie_1>0)?((ujemne_1/dodatnie_1)*100):0);
arr[0].setAttribute("value",postep_0);
arr[1].setAttribute("value",postep_1);
arr[2].innerHTML=(parseInt(postep_0*1000)/1000)+"%";
arr[3].innerHTML=(parseInt(postep_1*1000)/1000)+"%";
}
StronicowyParser.CzekajNaZakaczenie(tab_promise2,null,StronicowyParser.muteks,(tab_promise)=>{arr=Progress();__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);},(tab_promise)=>{__FUNKCJA(arr);setTimeout(function(){let node_postep=document.getElementById('pasek_postępu');$(node_postep).remove();},2000);}).then(async (result) => {}).catch(()=>{});
};
StronicowyParser.WyswietlStronyKsiazki().then((result) => {}).catch((error) => {});
});
sznbpqyqap5q89i17x8ynb9tyg7qjpx
Moduł:StronicowyParser/Potrzebne
828
58155
437454
436495
2022-08-11T12:22:48Z
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);
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 "")..'display:'..(czy_ukryte and "table" or "none")..';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;
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);
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
pozycja_artykulu=Artykul(((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]);
else
pozycja_artykulu=Artykul(parametry[1])
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikijunior..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikibooks..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.User..":"..parametry[1]);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,parametry,false,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
pozycja_artykulu=Artykul(pozycja_artykulu);
end;
end;
return pozycja_artykulu,nazwa,parametry,id,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;
rltpwexu2i0z693nneqe9ekgazmk2gu
437481
437454
2022-08-11T19:24: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)
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=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)
local tabela_listy_danych_analizy_ksiazki=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);
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 "")..'display:'..(czy_ukryte and "table" or "none")..';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;
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);
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
pozycja_artykulu=Artykul(((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]);
else
pozycja_artykulu=Artykul(parametry[1])
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikijunior..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikibooks..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.User..":"..parametry[1]);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,parametry,false,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
pozycja_artykulu=Artykul(pozycja_artykulu);
end;
end;
return pozycja_artykulu,nazwa,parametry,id,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;
314ikuqwjtywou9nd6t6650ljfj5w5t
437482
437481
2022-08-11T19:25:50Z
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);
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 "")..'display:'..(czy_ukryte and "table" or "none")..';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;
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);
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
pozycja_artykulu=Artykul(((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]);
else
pozycja_artykulu=Artykul(parametry[1])
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikijunior..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikibooks..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.User..":"..parametry[1]);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,parametry,false,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
pozycja_artykulu=Artykul(pozycja_artykulu);
end;
end;
return pozycja_artykulu,nazwa,parametry,id,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;
rltpwexu2i0z693nneqe9ekgazmk2gu
437513
437482
2022-08-11T22:24:03Z
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);
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 "")..'visibility:'..(czy_ukryte and "visible" or "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;
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);
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
pozycja_artykulu=Artykul(((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]);
else
pozycja_artykulu=Artykul(parametry[1])
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikijunior..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.Wikibooks..":"..parametry[1]);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
pozycja_artykulu=Artykul(nazwy_np_modul.User..":"..parametry[1]);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,parametry,false,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
pozycja_artykulu=Artykul(pozycja_artykulu);
end;
end;
return pozycja_artykulu,nazwa,parametry,id,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;
mddfkykp6mgps7su88f0a6eliw8u3c7
Wikipedysta:Persino/Gadget-StronicowyParser.js/NumerSubst.js
2
58332
437477
436967
2022-08-11T19:05:09Z
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 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 artykul=StronicowyParser.pageinfo.articlename;
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 aktualna_strona=StronicowyParser.pageinfo.fullname;
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
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){
console.log(data.expandtemplates.wikitext,"TYTAN1");
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}
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();
}
}
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){
console.log(data.expandtemplates.wikitext,"TYTAN2");
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){
console.log(data.expandtemplates.wikitext,"TYTAN3");
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
q9dwveold9hghuq44o3veegmc4t6xrb
437480
437477
2022-08-11T19:18:45Z
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 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 artykul=StronicowyParser.pageinfo.articlename;
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 aktualna_strona=StronicowyParser.pageinfo.fullname;
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
3xi77jaccjzkp7ncyapoei11q164p32
437527
437480
2022-08-12T06:08:31Z
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 json_wikikod=null;
if(prefix==""){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{#invoke:StronicowyParser|PobierzDaneKsiążki||nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki='+aktualna_strona+'|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
json_wikikod=JSON.parse(wikikod);
console.log(json_wikikod,"TYTAN");
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();}
}).catch(()=>{if(tab_promise){tab_promise.pop();}})
}
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 artykul=StronicowyParser.pageinfo.articlename;
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
fgtbgg1ator904kvd6folorx5x8t3uk
437528
437527
2022-08-12T06:09:47Z
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 json_wikikod=null;
if(prefix==""){
if(tab_promise){tab_promise.push(true);};
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(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
json_wikikod=JSON.parse(wikikod);
console.log(json_wikikod,"TYTAN");
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();}
}).catch(()=>{if(tab_promise){tab_promise.pop();}})
}
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 artykul=StronicowyParser.pageinfo.articlename;
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
g416o3if0s2v6f14i7bf21gg1jccha0
437529
437528
2022-08-12T06:57:45Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
if(tab_promise){tab_promise.push(true);};
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(async 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(()=>{if(tab_promise){tab_promise.pop();}})
}
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=(((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
6h9tlhp3mrl8b7m9hm134iov62bxgh9
437530
437529
2022-08-12T07:01:26Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
if(tab_promise){tab_promise.push(true);};
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(async 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(()=>{if(tab_promise){tab_promise.pop();}})
}
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=(((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
r3vr53eusl61uk0d8fx5k5g2nnukzns
437531
437530
2022-08-12T07:07:29Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
if(tab_promise){tab_promise.push(true);};
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(async 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(()=>{if(tab_promise){tab_promise.pop();}})
}
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=((json_wikikod[element_headline.innerHTML])?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
pbqgl4zkxn1bsfl57f2qcto8jbqzcwd
437532
437531
2022-08-12T07:09:08Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
if(tab_promise){tab_promise.push(true);};
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(async 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(()=>{if(tab_promise){tab_promise.pop();}})
}
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
console.log(json_wikikod[element_headline.innerHTML],json_wikikod[element_headline.innerHTML],"TYTAN")
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=((json_wikikod[element_headline.innerHTML])?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
eq8lpuiu6lkgtpl27vrbi5t2d7abf43
437533
437532
2022-08-12T07:10:42Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
if(tab_promise){tab_promise.push(true);};
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(async 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(()=>{if(tab_promise){tab_promise.pop();}})
}
console.log(json_wikikod,"TYTAN");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
console.log(json_wikikod[element_headline.innerHTML],json_wikikod[element_headline.innerHTML],"TYTAN")
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=((json_wikikod[element_headline.innerHTML])?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
4tfbfwvjlf5wmfmrsb1iki2bn6f3ea0
437534
437533
2022-08-12T07:13: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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
console.log(json_wikikod[element_headline.innerHTML],json_wikikod[element_headline.innerHTML],"TYTAN")
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=((json_wikikod[element_headline.innerHTML])?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
tpv1c8mhl9l5emtwktlql2fl6jv784j
437535
437534
2022-08-12T07:15:47Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
console.log(json_wikikod[element_headline.innerHTML],json_wikikod[element_headline.innerHTML],"TYTAN")
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=((json_wikikod[element_headline.innerHTML])?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
m1eiwynoh2l89zymnirtust8srcumo7
437536
437535
2022-08-12T07:17:47Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
console.log(json_wikikod[element_headline.innerHTML],element_headline.innerHTML,"TYTAN")
if((!json_wikikod)||((json_wikikod[element_headline.innerHTML])&&(json_wikikod[element_headline.innerHTML]==""))){
main_spis_tresci=((json_wikikod[element_headline.innerHTML])?element_headline.innerHTML:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
ckvqn4tx92ngt5efk0xfu1nh9py5wig
437537
437536
2022-08-12T07:22:51Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let nazwa;
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa]==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
console.log(main_spis_tresci,nazwa,"TYTAN")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
6ac44ewis3z1fwr0kutjcvxh96d6zbg
437538
437537
2022-08-12T07:24:29Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa]==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
console.log(main_spis_tresci,nazwa,"TYTAN")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
doxql9s9utribtviqsmy94vr6fp7ku2
437539
437538
2022-08-12T07:26:22Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
console.log(json_wikikod,json_wikikod[nazwa],nazwa,"TYTAN");
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa]==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
console.log(main_spis_tresci,nazwa,"TYTAN")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
rdf61rw72qswj3qki0e93j3w45qa2qv
437540
437539
2022-08-12T07:31:46Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
console.log(json_wikikod,json_wikikod[nazwa],nazwa,rozdzial_naglowka,"TYTAN");
if((!json_wikikod)||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
console.log(main_spis_tresci,nazwa,"TYTAN")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial_naglowka;
if(main_spis_tresci){
let rozdzial=json_wikikod[main_spis_tresci];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][rozdzial_naglowka][element_headline.innerHTML]:null)||json_wikikod[element_headline.innerHTML];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
5r2d1h6nvu0uvvok2z7u4yyxb3nn9f7
437541
437540
2022-08-12T07:36:41Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
console.log(p,"TYTAN");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
is4gxb1x0rj1llgb17kan7eo05hudvw
437542
437541
2022-08-12T07:37:29Z
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 json_wikikod=null;
if((prefix=="")&&(artykul=="")){
//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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
console.log(numer,"TYTAN");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
p93h0ai11x43k6qp57lihs8e3pwyexi
437544
437542
2022-08-12T07:59:54Z
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 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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
console.log(numer,"TYTAN");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
flttm80wae2wa2v8sg7bl39m57lqrws
437545
437544
2022-08-12T08:01:46Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=((json_wikikod[nazwa])?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
console.log(numer,"TYTAN");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
ntlk1gx3jtdx7eo16733d8jogo4ko93
437546
437545
2022-08-12T08:04:06Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
console.log(numer,"TYTAN");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
dzwxusd74uxvd27jl6ynsw4lbi5p1qu
437547
437546
2022-08-12T08:08:38Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
dilxtzfn0l6aavj245ju0lebqxocov2
437548
437547
2022-08-12T08:20:07Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(rozdzial_naglowka==""))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
numeracja=numer.split(".");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
8rb56s2b7mgr3cfc1ze0vo2b1zrpxq6
437550
437548
2022-08-12T08:53:42Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&((json_wikikod[nazwa][""])||((json_wikikod[nazwa])&&(json_wikikod[nazwa][rozdzial_naglowka][""]))))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
numeracja=numer.split(".");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
q1jx87a4wr5rd5kgx05d8ybmuxlf6g0
437551
437550
2022-08-12T08:59:45Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
numeracja=numer.split(".");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
dn5xyvfikk3bzaqz1uwzhpjsveexddj
437552
437551
2022-08-12T09:05:02Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer;
for(let p in rozdzial){numer=p;break;}
//numeracja=numer.split(".");
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+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer+". ";
}
}
}
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();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
5a08mvt8snuamxbk8ced1nutzf9ot0j
437553
437552
2022-08-12T09:13:38Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
9p9vyvnhcctn4o3vv8x7qqz6foxab2e
437554
437553
2022-08-12T09:16:15Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
console.log(nazwa,"TYTANB")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
kg57ldqui60s0x90ufagt6mz7693ejy
437555
437554
2022-08-12T09:21:22Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
console.log(json_wikikod[nazwa],"TYTAN");
if((!json_wikikod)||(!json_wikikod[nazwa])||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
console.log(nazwa,"TYTANB")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
lbehgx9l69qyf1f2sd777ks854gi4pc
437556
437555
2022-08-12T09:34:40Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
console.log(json_wikikod,nazwa,json_wikikod[nazwa],"TYTAN");
if((!json_wikikod)||((!main_spis_tresci)&&(!json_wikikod[nazwa]))||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
console.log(nazwa,"TYTANB")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
fxvgkb5lca1pl9y6jo9jvysjcoprjzx
437557
437556
2022-08-12T09:36:09Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
console.log(json_wikikod,nazwa,json_wikikod[nazwa],main_spis_tresci,"TYTAN");
if((!json_wikikod)||((!main_spis_tresci)&&(!json_wikikod[nazwa]))||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))){
console.log(nazwa,"TYTANB")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
8l3zd8x92x2zc7cs5xracte9i98xijw
437558
437557
2022-08-12T09:48:12Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)){
console.log(nazwa,"TYTANB")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
tsix36554lyk4m56mkbqvp7iqbeix0a
437559
437558
2022-08-12T09:50:51Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)){
console.log(nazwa,"TYTANB",numeracja)
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
8ai0lot979mey7gog4yqcq7bq79c1zu
437560
437559
2022-08-12T09:51:50Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)){
console.log(nazwa,"TYTANB",numeracja,numer)
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
console.log(nazwa,"TYTANA")
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
8dunnrdvveuvlqzc3kz13gxkxmr40p0
437561
437560
2022-08-12T09:53:32Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)){
console.log(nazwa,"TYTANB",numeracja,numer)
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
7elxpq9woc5kpq8997h050ruxxgacgb
437562
437561
2022-08-12T09:55:00Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
6ahjor0l1cbged5nqwsg74x20ldstlk
437563
437562
2022-08-12T09:59:41Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
console.log(json_wikikod)
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
tnowiw900cq73t1pl8z05npx97myd97
437564
437563
2022-08-12T10:06:14Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=(main_spis_tresci?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
console.log(json_wikikod)
if((!json_wikikod)||(json_wikikod[nazwa][""])||(!rozdzial)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
3i2ddq9aw7oxs81d50mse614z28e9dq
437565
437564
2022-08-12T10:09:03Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=(((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
console.log(json_wikikod)
if((!json_wikikod)||(json_wikikod[nazwa][""])||(!rozdzial)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
pq3oik5ulatv7dtys4n2svlm5y90myq
437566
437565
2022-08-12T10:12:30Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=(((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
console.log(json_wikikod)
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
c11125htitwkcymk2yilvxsuayt47y3
437567
437566
2022-08-12T10:14:46Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=(((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa];
console.log(json_wikikod)
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
ma121fzvxw2ryubpb55un2mgpgh3iji
437569
437567
2022-08-12T10:22:39Z
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(()=>{});
}
console.log(json_wikikod,"MAMUT");
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;
for(let i=0;i<headline.length;++i){
let element_headline=headline[i];
let parent=element_headline.parentNode;
if(!parent){
continue;
}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)){
continue;
}
}else{
continue;
}
}
let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
async function PrefixNumeracji(){
let tab_promise=new Array(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
let artykul_subst=data.expandtemplates.wikitext;
if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
tab_promise.push(true);
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: artykul_subst,
text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
wikikod=data.expandtemplates.wikitext;
if(!/^\s*$/g.test(wikikod)){
prefix_strona_start=wikikod+".";
}else{
prefix_strona_start="";
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
}
tab_promise.pop();
}).catch(()=>{tab_promise.pop();});
return StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
let elem=$(element_headline).parents(".strona_start");
if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
strona_start_poprzednie.push(elem[0]);
fun_strona_hnumer.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_strona.push(numeracja);
numeracja=new Array();
tak_poprzednie.push(tak);
tak=false;
pierwszy_naglowek2.push(pierwszy_naglowek);
pierwszy_naglowek=true;
prefix2.push(prefix);
artykul2.push(artykul);
jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
pierwszy_naglowek2.push(pierwszy_naglowek);
poziom_naglowka_spisu_tresci2.push(false);
if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
await PrefixNumeracji();
if(prefix_strona_start){
prefix=prefix_strona_start;
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else{
artykul=artykul_strona_start;
prefix_strona_start=undefined;
}
}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
strona_start_poprzednie.pop();
fun_hnumer=fun_strona_hnumer.pop();
numeracja=numeracja_strona.pop();
tak=tak_poprzednie.pop();
prefix=prefix2.pop();
pierwszy_naglowek=pierwszy_naglowek2.pop();
artykul=artykul2.pop();
jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
poziom_naglowka_spisu_tresci2.pop();
}
let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&/g,"&").replace(/ /g," ").replace(/[_\s]+/g," ");
let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
if(pierwszy_naglowek){
function CzyTylkoJedenGlownyNaglowek(){
let spis=undefined;
if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
for(let m=i+1;m<headline_artykul.length;++m){
let element_headline=headline_artykul[m];
let head=$(headline_artykul[m]).parents('.strona_start');
if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
let parent=element_headline.parentNode;
let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
if(poziom_naglowka_nastepny<=poziom_naglowka){
jeden_glowny_naglowek=false;
pierwszy_naglowek=false;
return;
}
}
}
jeden_glowny_naglowek=true;
pierwszy_naglowek=false;
}
CzyTylkoJedenGlownyNaglowek();
}
numer=fun_hnumer(poziom_naglowka);
if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
fun_hnumer=fun_hnumer_3.pop();
numeracja=numeracja_3.pop();
poziom_naglowka_spisu_tresci.pop();
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
}
let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
let rozdzial_naglowka=undefined;
if((json_wikikod)&&(json_wikikod[nazwa])){
let rozdzial=json_wikikod[nazwa];
for(let p in rozdzial){rozdzial_naglowka=p;break;}
}
let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]);
if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
console.log(nazwa,"TYTANA")
main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(numeracja.length<numer){numeracja.push(1);}
else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+". ";
}
}else{
console.log(nazwa,"TYTANB")
let numer_rozdzialu;
for(let p in rozdzial_json){numer_rozdzialu=p;break;}
numeracja=numer_rozdzialu.split(".");
for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
let czy_ponumerowany=parent.getElementsByClassName('numeracja');
let numeruj=undefined;
if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
if(!numeruj){
let span=document.createElement('span');
span.setAttribute('class',"numeracja");
span.innerHTML=numer_rozdzialu+". ";
parent.insertBefore(span,parent.firstChild);
}else{
czy_ponumerowany[0].innerHTML=numer_rozdzialu+". ";
}
}
}
if(!jeden_glowny_naglowek){
if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
poziom_naglowka_spisu_tresci.push(poziom_naglowka);
poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
tak=true;
fun_hnumer_3.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
numeracja_3.push(numeracja);
numeracja=new Array(0);
}
}else{
jeden_glowny_naglowek=false;
numeracja_2.push(numeracja);
numeracja=new Array();
fun_hnumer_2.push(fun_hnumer);
fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyArtykulu=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if(!czy_wikikod){
var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if(artykul==""){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;};
await StronicowyParser.muteks.zablokuj(true);
let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
let aktualna_strona=StronicowyParser.pageinfo.fullname;
let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
if((artykul==book)||(artykul=="Wersja do druku")){
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return;
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: aktualna_strona,
text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj(true);
let wikikod=data.expandtemplates.wikitext;
wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
let czy_wikikod=/^[_\s]*$/g.test(wikikod);
if((czy_wikikod)||(wikikod=="(błąd)")){
wikikod="";
}else{
wikikod=wikikod+".";
}
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((error) => {if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}
await StronicowyParser.muteks.zablokuj(true);
let parent=element.parentNode;
if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
if(tab_promise){tab_promise.push(true);};
new Promise((resolve,reject)=>{
let czas=0;
function Naglowek(resove,reject){
let numeracja=parent.querySelector('.numeracja');
if(numeracja===null){
if(czas>60000){reject();};
czas+=300;
setTimeout(()=>{Naglowek(resove,reject)},300);
}else{
resolve(numeracja);
}
}
setTimeout(()=>{
Naglowek(resolve,reject);
},300);
}).then(async function(numeracja){
await StronicowyParser.muteks.zablokuj(true);
let numeracja_naprawa=numeracja.innerHTML.replace(/ /g,"");
if(tab_promise){tab_promise.push(true);};
zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch((data)=>{if(tab_promise){tab_promise.pop();};});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});
hoz6wy0dyj69mgtd89pkbgalhlxal4t
Wikipedysta:Persino/Gadget-StronicowyParser.js/SzablonSubst.js
2
58381
437484
433950
2022-08-11T19:40:06Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
//StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
b5oybeoet5yin1omslulw2np4wcqzlh
437485
437484
2022-08-11T19:41:48Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
console.log(wikikod,"TYTANBB")
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
//StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
hvhlqent17qhs7gwwyxn79eh09dwaf8
437486
437485
2022-08-11T19:44:45Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log("<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>");
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
console.log(wikikod,"TYTANBB")
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
//StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
tlt0pjjn4uzfzmldlxwyyjlay83hb0j
437487
437486
2022-08-11T19:46:06Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log("<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>","MAMUT");
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
console.log(wikikod,"TYTANBB")
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
//StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
qqor0hntct9vjvocdkvj5mtbxoysdf0
437488
437487
2022-08-11T19:48:45Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log("<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>","MAMUT");
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
console.log(wikikod,"TYTANBB")
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
//StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
opkr9pph3kbl3rvoofr8ypksktyxq92
437489
437488
2022-08-11T19:53:03Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log("<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>","MAMUT");
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
console.log(wikikod,"TYTANBB")
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
//StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
//StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
rhs5ymmolbmfbrexkmdhv7z54tvkhdi
437490
437489
2022-08-11T19:54:22Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
iujx2galb7rozvkd4yxbkp2kmqa9fgx
437493
437490
2022-08-11T20:05:32Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log(i,"TYTANA")
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
console.log(i,"TYTANB")
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
6cuhy08e7gane91xcz8vw0lqey2k69w
437494
437493
2022-08-11T20:07:41Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log(i,"TYTANA")
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
/*wait StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
console.log(i,"TYTANB")
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();*/
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
1b62esjmj6i5bb2by29xwwqm7gl8uya
437495
437494
2022-08-11T20:10:27Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
console.log(i,"TYTANA")
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
/*let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
console.log(i,"TYTANB")
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});*/
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
gmtrzgt4gtkjt8hpis2gpago515z5vh
437496
437495
2022-08-11T20:11:05Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
iujx2galb7rozvkd4yxbkp2kmqa9fgx
437497
437496
2022-08-11T20:11:40Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
53yw47xo64cgjpu42vhgwhu28hn6dzr
437498
437497
2022-08-11T20:13:40Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
/*if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});*/
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
o0nqfiawfmn98ojwdadwv8l2wl956bx
437499
437498
2022-08-11T20:18:42Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
// StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}/*
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});*/
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
pdwgi840qhqm5jwfoobejvwls1mb6br
437500
437499
2022-08-11T20:21:07Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
// StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
fnc4zvzx483oj9i1wmdovs8fns29fiu
437501
437500
2022-08-11T20:22:41Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
// if(tab_promise){tab_promise.push(true);};
// StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
// if(tab_promise){tab_promise.push(true);};
// StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
// StronicowyParser.TrybCiemnyIJasny(element_div);
}
//StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
// StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
// StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
acz380x17ck785vnn9docs2umomzxx6
437502
437501
2022-08-11T20:23:42Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
//StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
// if(tab_promise){tab_promise.push(true);};
// StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
// if(tab_promise){tab_promise.push(true);};
// StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
// StronicowyParser.TrybCiemnyIJasny(element_div);
}
//StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
// StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
// StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}
}
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
ceyp1c6xwttkbqa6vzefhkkolsgx45f
437503
437502
2022-08-11T20:25:08Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
//StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
// if(tab_promise){tab_promise.push(true);};
// StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
// if(tab_promise){tab_promise.push(true);};
// StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
// StronicowyParser.TrybCiemnyIJasny(element_div);
}
//StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
// StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
// StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
/*let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}*/
}
//if(tab_promise){tab_promise.push(true);};
//StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
dc2rspgbh6g21pw054dwtz1dnz8amba
437504
437503
2022-08-11T20:27:21Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
/*let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
let a_element=toc[k].querySelector("ul").querySelector("a");
if(a_element!==null){
toc[k].style.display="table";
}
}*/
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
61v1oco7yyrrvfmdx8x723i9jwps527
437506
437504
2022-08-11T21:03:38Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
console.log(toc,"TYTANFF")
// let a_element=toc[k].querySelector("ul").querySelector("a");
// if(a_element!==null){
// toc[k].style.display="table";
// }
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
46aeykj2uvkails5wx7iuaxie0wxij2
437507
437506
2022-08-11T21:04:47Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
let toc=document.getElementsByClassName("spis_treści");
for(let k=0;k<toc.length;++k){
console.log(toc,toc[k].querySelector("ul"),"TYTANFF")
// let a_element=toc[k].querySelector("ul").querySelector("a");
// if(a_element!==null){
// toc[k].style.display="table";
// }
}
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
f5zw7mqbnjmzqrtwhy9mqm58xcfwif7
437508
437507
2022-08-11T21:10:48Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 0,
maxage: 0,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(".spis_treści").has('ul a').css('display',"table");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
nk92hql5pth0d8vdfouw4bj23pdkoj0
437509
437508
2022-08-11T21:12:15Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(".spis_treści").has('ul a').css('display',"table");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
s4kbze0979nqne6efuozv8668ptcq4y
437511
437509
2022-08-11T21:32:17Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(element_div).parents('.strona start').find('.prawa_strona, .lewa strona').first().find(".spis_treści").has('ul a').css('display',"flex");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
spj9b28lulcy7cirbclopf0wfyrikxb
437512
437511
2022-08-11T21:33:33Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(element_div).parents('.strona_start').find('.prawa_strona, .lewa strona').first().find(".spis_treści").has('ul a').css('display',"flex");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
knzysw8t8efk9pfpg545mnbq2xfdbqm
437514
437512
2022-08-11T22:26:19Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(element_div).parents('.strona_start').find('.prawa_strona, .lewa strona').first().find(".spis_treści").has('ul a').css('visibility',"visible");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
3qcmyffluaqu45qo0jbtrhkkh0crm0b
437515
437514
2022-08-11T22:27:35Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(element_div).parents('.strona_start').find('.strona_prawa, .strona_lewa').first().find(".spis_treści").has('ul a').css('visibility',"visible");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
cfr7cqlm40jmlhaa7cvw1g6cstbb7ot
437516
437515
2022-08-11T22:34:35Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(element_div).parents('.strona_start').first().find('.strona_prawa, .strona_lewa').first().find(".spis_treści").has('ul a').css('visibility',"visible");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
nu84gsfwrm2639gsz07myv6ibmiq684
437517
437516
2022-08-12T04:49:56Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('.strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(".spis_treści").has('ul li a').css('visibility',"visible");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
nrd6k5fv00a9gyxxr9z6o1z7g5y6fm2
437519
437517
2022-08-12T05:11:01Z
Persino
2851
javascript
text/javascript
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.SzablonSubst=function(){
let szablonsubst_rozwijanie_szablonow=undefined;
let szablonsubst_dymki_nad_szablonami=undefined;
let szablonsubst_numerowanie=undefined;
let szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
let szablonsubst_spis_tresci=undefined;
let szablonsubst_latex=undefined;
let szablonsubst_mathml=undefined;
if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
mw.messages.set({
'SzablonSubst-name': 'Rozwijanie szablonów',
'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
'SzablonSubst-rozwijanie_szablonow': 'Włącz rozwijanie szablonów w JavaScript.',
'SzablonSubst-dymki_nad_szablonami': 'Włącz obsługę dymków nad linkami, tworząc je inteligentnymi.',
'SzablonSubst-szablonsubst_numerowanie': 'Włącz numerowanie wewnątrz szablonu.',
'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
'SzablonSubst-spis_tresci': 'Generuj Spis treści artykułu, w któym uruchomiono gadżet SzablonSubst.',
'SzablonSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'SzablonSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
});
gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
{
name: 'rozwijanie_szablonow',
desc: mw.msg('SzablonSubst-rozwijanie_szablonow'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_rozwijanie_szablonow']
},
{
name: 'dymki_nad_szablonami',
desc: mw.msg('SzablonSubst-dymki_nad_szablonami'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_dymki_nad_szablonami']
},
{
name: 'szablonsubst_numerowanie',
desc: mw.msg('SzablonSubst-szablonsubst_numerowanie'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_szablonsubst_numerowanie']
},
{
name: 'nie_uwzgledniaj_edycji_sekcji',
desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_nie_uwzgledniaj_edycji_sekcji']
},
{
name: 'spis_tresci',
desc: mw.msg('SzablonSubst-spis_tresci'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'latex',
desc: mw.msg('SzablonSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_szablonsubst_latex']
},
{
name: 'mathml',
desc: mw.msg('SzablonSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_szablonsubst_mathml']
},
]);
szablonsubst_rozwijanie_szablonow = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow')==true);
szablonsubst_dymki_nad_szablonami = (gConfig.get('SzablonSubst', 'dymki_nad_szablonami')==true);
szablonsubst_numerowanie = (gConfig.get('SzablonSubst', 'szablonsubst_numerowanie')==true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
szablonsubst_spis_tresci = (gConfig.get('SzablonSubst', 'spis_tresci')==true);
szablonsubst_latex = (gConfig.get('SzablonSubst', 'latex')==true);
szablonsubst_mathml = (((gConfig.get('SzablonSubst', 'mathml'))&&(!szablonsubst_latex))==true);
}
szablonsubst_rozwijanie_szablonow=((szablonsubst_rozwijanie_szablonow!=undefined)?szablonsubst_rozwijanie_szablonow:true);
szablonsubst_dymki_nad_szablonami=((szablonsubst_dymki_nad_szablonami!=undefined)?szablonsubst_dymki_nad_szablonami:true);
szablonsubst_numerowanie=((szablonsubst_numerowanie!=undefined)?szablonsubst_numerowanie:true);
szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
szablonsubst_spis_tresci=((szablonsubst_spis_tresci!==undefined)?szablonsubst_spis_tresci:true);
szablonsubst_latex=((szablonsubst_latex!==undefined)?szablonsubst_latex:false);
szablonsubst_mathml=((szablonsubst_mathml!==undefined)?szablonsubst_mathml:true);
let tab_num=new Array();
this.LadujSzablon=async function(element,nazwa,titles,czy_numerowac,tab_promise){
if(!szablonsubst_rozwijanie_szablonow){if(tab_promise){tab_promise.pop();}; return;}
if(czy_numerowac==undefined){czy_numerowac=true;}
await StronicowyParser.muteks.zablokuj();
//await StronicowyParser.script.LoadScript('skins.vector.es6');
StronicowyParser.NaprawNaglowkiStrony(czy_numerowac);
let szablon_js;
if(!element){
szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
}else{
szablon_js=$(element).find('.szablon_subst_js');
}
if((szablon_js!==null)&&(szablon_js.length>0)){
let catlinks_fun=new StronicowyParser.LinkiKategorii();
await catlinks_fun.PobierzKategorieStrony();
let tab_szablon_js=new Array();
for(let i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
for(let i=0;i<tab_szablon_js.length;++i){
let element=tab_szablon_js[i];
let potomek=((element)?($('.szablon_subst_js').find(element)):element);
if((potomek===null)||(potomek.length==0)){
let strona_szablon_js=undefined;
let nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
if(nazwa_strony){
strona_szablon_js=StronicowyParser.style.UsunStyle(nazwa_strony.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(/^[_\s]*$/g.test(strona_szablon_js)){
strona_szablon_js=undefined;
}
}
if(!strona_szablon_js){
strona_szablon_js=((nazwa)?nazwa:(StronicowyParser.pageinfo.fullname));
}
let zawartosc;
let wzor_element=$(element).children("*");
if((wzor_element!==null)&&(wzor_element.length>0)){
zawartosc=element.innerHTML;
for(let i=0;i<wzor_element.length;++i){
let math=wzor_element[i].outerHTML;
let math_temp=math;
math=math.replace(/[\{\}\=\|]/g,function(s){
let tab={
"{":"{{(}}",
"}":"{{)}}",
"=":"{{=}}",
"|":"{{!}}"
};
return tab[s]||s;
}).replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#47;");
math_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(math_temp);
let re=new RegExp(math_temp,"g");
zawartosc=zawartosc.replace(re,math);
}
}else{
zawartosc=element.innerHTML;
}
let grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
if(grupa!==null){
let grupa_temp=grupa.toString();
let grupa_temp2=grupa_temp;
grupa_temp=StronicowyParser.wzor.BezZnakowSpecjalnych(grupa_temp);
let re=new RegExp(grupa_temp,"g");
grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.api.ZadaniaApi({
action: 'parse',
format: 'json',
prop: 'text|categories',
title: strona_szablon_js,
text: "<div class=\"hn hn_"+i+"\">"+((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__":"")+zawartosc+"</div>",
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext',
smaxage: 600,
maxage: 600,
}).then(async function(data){
await StronicowyParser.muteks.zablokuj();
let wikikod=data.parse.text['*'];
let title=data.parse.title;
wikikod=wikikod.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#47;/g,"/");
let tab=StronicowyParser.potrzebne.UzyskajLiczbe(wikikod)
let i=tab[0];
let hn=tab[1];
if(hn==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;}
catlinks_fun.AnalizaKategorii(data).then((result) => {}).catch((error) => {});
let parent_szablon_js=szablon_js[i].parentNode;
let element_div;
if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
element_div=parent_szablon_js;
}else{
element_div=szablon_js[i];
}
element_div.innerHTML=hn.innerHTML;
element_div.setAttribute('nazwa_strony',title);
element_div.classList.add('szablon_subst_js_zaanalizowany');
if(!nazwa){
if((StronicowyParser.numerowanie)&&(StronicowyParser.numerowanie.NumerujRozdzialyArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyArtykulu(tab_promise).then((result) => {}).catch((error) => {});
}
}else{
if((self_gadget_strona_zbiorcza.numerowanie)&&(self_gadget_strona_zbiorcza.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu)&&(szablonsubst_numerowanie)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.numerowanie.NumerujRozdzialyPoSciagnieciuArtykulu(element,tab_promise);//Funkcja jako gadżet do numerowania rozdziałów.
}
if((titles)&&(titles.length>0)){
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej(element_div,nazwa,titles);
}
}
if((StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if((StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo)&&(szablonsubst_dymki_nad_szablonami)){
if(tab_promise){tab_promise.push(true);};
StronicowyParser.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element_div,tab_promise).then((result) => {}).catch((error) => {});
}
if(StronicowyParser.TrybCiemnyIJasny){
StronicowyParser.TrybCiemnyIJasny(element_div);
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika(element_div);
let tab_element_div=$(element_div).find("h1, h2, h3, h4, h5, h6");
if((tab_element_div!==null)&&(tab_element_div.length>0)){
if(szablonsubst_spis_tresci){
let strona_start=$('#mw-content-text .mw-parser-output .strona_start').find(element_div).parents('.strona_start');
if((strona_start!==null)&&(strona_start.length>0)){
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(strona_start[0],czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}else{
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci(undefined,czy_numerowac,szablonsubst_latex,szablonsubst_mathml);
}
}
$(".spis_treści").has('ul li a').css('visibility',"visible");
}
if(tab_promise){tab_promise.push(true);};
StronicowyParser.szablony.LadujSzablon(element_div,nazwa,titles,czy_numerowac,tab_promise).then((result) => {}).catch((error) => {});
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
}).catch(async (error) => {if(tab_promise){tab_promise.pop();};});
}
}
}
StronicowyParser.muteks.odblokuj();
if(tab_promise){tab_promise.pop();};
return tab_promise;
}
}
StronicowyParser.szablony=new StronicowyParser.SzablonSubst();
});
ng9viyjtu5uldxhq48j260cso9qd3a4
Wikipedysta:Persino/Gadget-StronicowyParser.js/Moduł.js
2
58440
437510
437067
2022-08-11T21:19:38Z
Persino
2851
javascript
text/javascript
StronicowyParser.ZamienLinkiNaLinkiDoStronyAktualnej=function(element,title,titles){
let a=element.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
let lena=a.length;
for(let i=0;i<lena;++i){
let element_a=a[i];
let href=StronicowyParser.kodowanie.DecodeHtml(element_a.getAttribute('href'));
if(href!==null){
let re=/^[^\?]+\?[^&]+=[^&]*&?/g;
if(!re.test(href)){
let re2=/#/g;
let s=href.search(re2);
if(s!=-1){
let re=/^\/wiki\//g;
if(re.test(href)){
let href2=href.substring(6,s);
href2=href2.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
for(let p=0;p<titles.length;++p){
let strona_bez_hash=titles[p].replace(/^([^#]*)#(.*)$/g,"$1");
let strona=strona_bez_hash.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href2==strona){
let href3=href.replace(/^[^#]*/g,"");
element_a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml(href3));
element_a.setAttribute("title","");
element_a.setAttribute("old_href",href);
}
}
}
if(s==0){
element_a.setAttribute("old_href","/wiki/"+title+href);
}
}else{
let re=/^\/wiki\//g;
if(re.test(href)){
let hrefs=href.replace(re,"");
hrefs=hrefs.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
for(let p=0;p<titles.length;++p){
let strona_bez_hash=titles[p].replace(/^([^#]*)#(.*)$/g,"$1");
let strona=strona_bez_hash.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(hrefs==strona){
let hrefs2=hrefs.replace(/^[^\/]*\//g,"");
element_a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml('#'+hrefs2));
element_a.setAttribute("title","");
element_a.setAttribute("old_href",href);
}
}
}
}
}
}
}
}
}
StronicowyParser.CzyWlaczycSideBarTOC=function(elements,czy_numerowac){
let toc_nowy_vector=$('.mw-table-of-contents-container');
if((toc_nowy_vector==null)||(toc_nowy_vector.length==0)){return false;}
if(!elements){
let sidebartoc=$('.mw-table-of-contents-container > .sidebar-toc');
if((sidebartoc!==null)&&(sidebartoc.length>0)){return true;}
}
if(!czy_numerowac){return false;}
let rodzic=$('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
let toc_stary_vector=rodzic.find('.toc, .toc_spis, .toc_wykaz');
let style_lub_link=rodzic.children('style, link');
let wszystkie_dzieci=rodzic.children();
/**/
let strona_start_jedyne_dziecko=$('#mw-content-text .mw-parser-output > .strona_start:only-child');
let strona_start=$('#mw-content-text .mw-parser-output .strona_start');
let action_view=document.querySelector('body.action-view:not(.ns-special)');
if(action_view){
if(((strona_start_jedyne_dziecko!==null)&&(strona_start_jedyne_dziecko.length>0))
||((strona_start===null)||(strona_start.length==0))
||((strona_start!==null)&&(style_lub_link!==null)&&(wszystkie_dzieci!==null)&&(strona_start.length==1)&&(wszystkie_dzieci.length-style_lub_link.length==1))
){
if((toc_stary_vector)&&(toc_stary_vector.length>0)){
let w_strona_start=toc_stary_vector.parents('.strona_start');
if((w_strona_start!==null)&&(w_strona_start.length>0)){
return false;
}else{
if((toc_stary_vector!==null)&&(toc_stary_vector.length>0)){
return false;
}else{
return true;
}
}
}else{return true;}
}else if((strona_start!==null)&&(strona_start.length>0)){
let pole=$('#mw-content-text .mw-parser-output').find('h1,h2,h3,h4,h5,h6');
function NaglowkiNiektorePozaStronaStart(){
if(elements){return false;}
for(let i=0;i<pole.length;++i){
let s=strona_start.find(pole[i]);
if((s===null)||(s.length==0)){
return true;
}
}
return false;
}
if(NaglowkiNiektorePozaStronaStart()){
if((toc_stary_vector)&&(toc_stary_vector.length>0)){
for(let i=0;i<toc_stary_vector.length;++i){
let strona_start=$(toc_stary_vector[i]).parents('.strona_start');
if((strona_start===null)||(strona_start.length==0)){
return false;
}
}
return true;
}else{
return true;
}
}else{
if((strona_start!==null)&&(strona_start.length==1)){
if((toc_stary_vector)&&(toc_stary_vector.length>0)){
for(let i=0;i<toc_stary_vector.length;++i){
let toc=strona_start.find(toc_stary_vector[i]);
if((toc!==null)&&(toc.length>0)){
return false;
}
}
return true;
}else{
return true;
}
}else{
return false;
}
}
}
}
}
StronicowyParser.ListaNodeTOC=function(elements,czy_numerowac){
let rodzic=$('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
let toc_stary_vector;
let zaaktualizowany=$('.rodzic_szablon_subst_js');
if((zaaktualizowany!==null)&&(zaaktualizowany.length>0)){
let rodzic_szablon_subst_js=$('.rodzic_szablon_subst_js:not(.szablon_subst_js_zanalizowany)');
if((rodzic_szablon_subst_js===null)||(rodzic_szablon_subst_js.length==0)){
toc_stary_vector=rodzic.find('.toc:not(.toc_ukończony), .toc_spis:not(.toc_ukończony)');
}else{
toc_stary_vector=rodzic.find('.toc, .toc_spis');
}
}else{
toc_stary_vector=rodzic.find('.toc, .toc_spis');
}
let czy_sidebartoc=StronicowyParser.CzyWlaczycSideBarTOC(elements,czy_numerowac);
let toc_nowy_vector=((czy_sidebartoc)?$('.mw-table-of-contents-container'):undefined);
this.CzyJestSideBarToc=function(){
return (((toc_nowy_vector)&&(toc_nowy_vector.length>0))?true:false);
}
this.CzyJestTOC=function(){
return (((toc_stary_vector)&&(toc_stary_vector.length>0))?true:false);
}
this.CzySideBarToc=function(elem){
if(toc_nowy_vector){
for(let i=0;i<toc_nowy_vector.length;++i){
if(elem==toc_nowy_vector[i]){
return true;
}
}
}
return false;
}
if(this.CzyJestSideBarToc()){
this.toc=new Array();for(let i=0;i<toc_stary_vector.length;++i){this.toc.push(toc_stary_vector[i]);};
for(let i=0;i<toc_nowy_vector.length;++i){this.toc.push(toc_nowy_vector[i]);};
}else{
this.toc=toc_stary_vector;
}
}
StronicowyParser.AktualizujSpisTresciModuluStrony=function(elements,tabs,strona_hash,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,czy_numerowac,stronasubst_latex,stronasubst_mathml,czy_szablon_subst){
let toc_fun=new StronicowyParser.ListaNodeTOC(elements,czy_numerowac);
/**/
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
/**/
let element_strona_hash=stronasubst_tablica_alternatywnych_nazw[strona_hash];
let strona_title_hash;let title_2;
if(element_strona_hash===undefined){
strona_title_hash=strona_hash.replace(/^([^#]*)#(.*)$/g,"$2").replace(/&/g,"&").replace(/ /g,"_");
title_2=strona_title_hash.match(/[^\/]+$/g).toString().replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
}else{
strona_title_hash=element_strona_hash.replace(/&/g,"&").replace(/ /g,"_");
title_2=strona_title_hash.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
}
let title2=title_2.replace(/[_\s]+/g," ");
let title2_href=title_2.replace(/[_\s]+/g,"_");
/**/
let re=/^([^#]*)#(.*)$/g;
let subtabe;
if(re.test(strona_hash)){
subtitle=strona_hash.replace(/^([^#]*)#(.*)$/g,"$2");
}else{
subtitle=strona_hash.match(/[^\/]+$/g).toString();
}
if(czy_szablon_subst){
if(elements===undefined){
elements=new Array();
elements[0]=document.querySelector("body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text");
}
}
for(let q in elements){
let element=elements[q];
let powtorka=1;
let vv=0;
let numer_artykulu;
for(let e=0;e<tabs.length;++e){
if(tabs[e]==strona_hash){
if(q==vv){
numer_artykulu=e;
let subtabe;
for(let ee=0;ee<e;++ee){
if(re.test(tabs[ee])){
subtitle=tabs[ee].replace(/^([^#]*)#(.*)$/g,"$2");
}else{
subtabe=tabs[ee].match(/[^\/]+$/g).toString();
}
if(subtabe==subtitle){
++powtorka;
}
}
break;
}
++vv;
}
}
let strona_start;
let strona_start_s=$('.strona_start');
for(let i=0;i<strona_start_s.length;++i){
if(strona_start_s[i]==element){
strona_start=$(element);
break;
}
}
if(!strona_start){
strona_start=$(element).parents(".strona_start");
}
let ile_stronasubst_tablica_tych_samych=0;
for(let gg=0;gg<numer_artykulu;++gg){
let element_stronasubst_tablica_tych_samych=stronasubst_tablica_tych_samych[gg];
if(element_stronasubst_tablica_tych_samych!=null){
let element_stronasubst_tablica_tych_samych_title=element_stronasubst_tablica_tych_samych[title2];
ile_stronasubst_tablica_tych_samych+=((element_stronasubst_tablica_tych_samych_title!=null)?element_stronasubst_tablica_tych_samych_title:0);
}
}
let ile_powtorek=powtorka+ile_stronasubst_tablica_tych_samych;
/**/
let num=new Array("numer");
let headline=element.getElementsByClassName("mw-headline");
if((headline!==null)&&(headline.length>0)){
let HNumer=StronicowyParser.hnumer.LiczonyHNumer();
let len=headline.length;
let naglowek="";
let naglowek2="";
let liczba_ulozenia_w_menu_spisu_tresci=1;
for (let k=0;k<len;++k){
let element2=headline[k];
if((strona_start===null)||(strona_start.length==0)){
let czy_naglowek_wewnatrz_strony=$('.strona_start .ciało_strona').find(element2);
if((czy_naglowek_wewnatrz_strony!==null)&&(czy_naglowek_wewnatrz_strony.length>0)){
continue;
}
}else{
let strona_start2=$('.strona_start .ciało_strona').find(element2).parents('.strona_start');
if(strona_start[0]!=strona_start2[0]){continue;}
}
let hparent=element2.parentNode;
if(hparent!==null){
let h=hparent.tagName.toUpperCase();
if(h.match(/^H\d+$/g)){
let nag2=element2.getAttribute('id');
if(nag2!==null){
nag2=StronicowyParser.style.UsunStyle(nag2).replace(/&/g,"&").replace(/ /g,"_");
let nag_poczatkowe=StronicowyParser.style.UsunStyle(element2.innerHTML);
//nag_poczatkowe=nag_poczatkowe.replace(/^([^#]*)#(.*)$/g,"$2");
let nag=nag_poczatkowe.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_latex){
nag_poczatkowe=nag_poczatkowe.replace(/<[^<>]+>/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"").replace(/\s+/g," ");
}else{
nag_poczatkowe=nag_poczatkowe.replace(/<a\s+[^<>]+>/g,"").replace(/<a\s*>/g,"").replace(/<\/a\s*>/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"").replace(/\s+/g," ");
}
if(stronasubst_tablica_tych_samych[numer_artykulu]==null){
stronasubst_tablica_tych_samych[numer_artykulu]=new Array();
stronasubst_tablica_tych_samych[numer_artykulu][nag]=1;
}else{
if(stronasubst_tablica_tych_samych[numer_artykulu][nag]!=null){
stronasubst_tablica_tych_samych[numer_artykulu][nag]+=1;
}else{
stronasubst_tablica_tych_samych[numer_artykulu][nag]=1;
}
}
let h_numer=StronicowyParser.hnumer.PoziomNaglowka(hparent);
h_numer=HNumer(h_numer);
if(k==0){
num.push(1);
if(toc_fun.CzyJestTOC()){
let w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+="<ul><li><a href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
if(toc_fun.CzyJestSideBarToc()){
let w_a="<div class=\"sidebar-toc-text"+((stronasubst_mathml)?" mathml":"")+"\"><span class=\"sidebar-toc-numb\">"+num.join('.')+"</span>"+nag_poczatkowe+"</div>";
naglowek2+="<ul><li id=\"toc-"+nag2+"\" class=\"sidebar-toc-list-item\"><a class=\"sidebar-toc-link\" href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
}else{
if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){
num[num.length-1]+=1;
if(toc_fun.CzyJestTOC()){
let w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+="</li><li><a href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
if(toc_fun.CzyJestSideBarToc()){
let w_a="<div class=\"sidebar-toc-text"+((stronasubst_mathml)?" mathml":"")+"\"><span class=\"sidebar-toc-numb\">"+num.join('.')+"</span>"+nag_poczatkowe+"</div>";
naglowek2+="</li><li id=\"toc-"+nag2+"\" class=\"sidebar-toc-list-item\"><a class=\"sidebar-toc-link\" href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
}else{
if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){
num.push(1);
if(toc_fun.CzyJestTOC()){
let w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+="<ul><li><a href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
if(toc_fun.CzyJestSideBarToc()){
let w_a="<div class=\"sidebar-toc-text"+((stronasubst_mathml)?" mathml":"")+"\"><span class=\"sidebar-toc-numb\">"+num.join('.')+"</span>"+nag_poczatkowe+"</div>";
naglowek2+="<ul><li id=\"toc-"+nag2+"\" class=\"sidebar-toc-list-item\"><a class=\"sidebar-toc-link\" href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
liczba_ulozenia_w_menu_spisu_tresci=h_numer;
}else{
if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){
num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer);
num[num.length-1]+=1;
if(toc_fun.CzyJestTOC()){
let w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
if(toc_fun.CzyJestSideBarToc()){
let w_a="<div class=\"sidebar-toc-text"+((stronasubst_mathml)?" mathml":"")+"\"><span class=\"sidebar-toc-numb\">"+num.join('.')+"</span>"+nag_poczatkowe+"</div>";
naglowek2+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li id=\"toc-"+nag2+"\" class=\"sidebar-toc-list-item\"><a class=\"sidebar-toc-link\" href=\""+StronicowyParser.kodowanie.EncodeHtml("#"+nag2)+"\">"+w_a+"</a>";
}
liczba_ulozenia_w_menu_spisu_tresci=h_numer;
}
}
}
}
}
}
}
}
if(((naglowek!=null)&&(naglowek!=""))||((naglowek2!=null)&&(naglowek2!=""))){
naglowek+=(((naglowek)&&(naglowek!=""))?('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)):"");
naglowek2+=(((naglowek2)&&(naglowek2!=""))?('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)):"");
function UzupelnijSideBarTOC(rodzic){
let li=$(rodzic).find('ul > li');
if((li==null)||(li.length==0)){return;}
for(let i=0;i<li.length;++i){
let ul_dziecko=$(li[i]).children('ul').find('*');
if((ul_dziecko!==null)&&(ul_dziecko.length>0)){
li[i].classList.add('sidebar-toc-list-item-expanded');
}
}
li=$(rodzic).find('.sidebar-toc > ul > li:first-child');
if((li===null)||(li.length==0)){return;}
let ul=$(rodzic).find('.sidebar-toc > ul');
ul[0].setAttribute('class','sidebar-toc-contents');
if(li[0].getAttribute('id')!="toc-mw-content-text"){
let li=document.createElement('li');
li.setAttribute('id',"toc-mw-content-text");
li.setAttribute('class','sidebar-toc-list-item');
let a=document.createElement('a');
a.setAttribute('href','#top-page');
a.setAttribute('class','sidebar-toc-link');
let div=document.createElement('div');
div.setAttribute('class','sidebar-toc-text');
div.innerHTML="Początek";
a.appendChild(div);
li.appendChild(a);
li=ul[0].insertBefore(li,ul[0].firstChild);
}
let a=$(rodzic).find('li#toc-mw-content-text ~ li a.sidebar-toc-link');
if((a==null)||(a.length==0)){return;}
for(let i=0;i<a.length;++i){
let ul=$(a[i]).siblings('ul');
let href=a[i].getAttribute('href').replace(/^#/g,"");
if((ul!==null)&&(ul.length>0)){
ul[0].setAttribute('class','sidebar-toc-list')
ul[0].setAttribute('id','toc-'+href+'-sublist')
continue;
}
ul=document.createElement('ul');
ul.setAttribute('class','sidebar-toc-list');
ul.setAttribute('id','toc-'+href+'-sublist')
a[i].parentNode.appendChild(ul);
}
a=$(rodzic).find('li#toc-mw-content-text ~ li > a.sidebar-toc-link');
if((a==null)||(a.length==0)){return;}
for(let i=0;i<a.length;++i){
let ul=$(a[i]).siblings('ul');
let href=a[i].getAttribute('href').replace(/^#/g,"");
if((ul!==null)&&(ul.length>0)){
let child=$(ul[0]).children();
if((child==null)||(child.length==0)){continue;}
let buttons=$(a[i]).siblings('button');
if((buttons!==null)&&(buttons.length>0)){continue;}
button=document.createElement('button');
button.setAttribute('aria-controls','toc-'+href+'-sublist')
button.setAttribute('class','mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle');
button.setAttribute('aria-expanded','true');
button.innerHTML="Przełącz podsekcję "+href.replace(/[_\s]+/g," ");
a[i].parentNode.insertBefore(button,ul[0]);
continue;
}
}
}
for(let b=0;b<toc_fun.toc.length;++b){
if(!czy_szablon_subst){
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[b]);
let ile=ile_powtorek;
let a2=toc_fun.toc[b].getElementsByTagName('a');
if((a2!==null)&&(a2.length>0)){
let tab_a2=new Array();
for(let x=0;x<a2.length;++x){tab_a2[x]=a2[x];}
for(let y=0;y<tab_a2.length;++y){
function CzyTitleNaglowek(){
let element_tab_a2=tab_a2[y];
let href2=StronicowyParser.kodowanie.DecodeHtml(element_tab_a2.getAttribute('href'));
if(href2!==null){
href2=href2.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_tab_a2.querySelector('.sidebar-toc-numb');
if(!tocnumber){return true;}
toctext_wartosc=element_tab_a2.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_tab_a2.querySelector('.tocnumber');
toctext_wartosc=element_tab_a2.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," " );
//let element_tocnumber=tocnumber;//.innerHTML.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
let tab=stronasubst_tablica_rozdzialow[element_toctext];
if((tab!=null)&&(tab.length>0)){
for(let m in tab){
if(tab[m]==tocnumber){
return true;
}
}
}
}
}
return false;
}
if(CzyTitleNaglowek()){continue;}
let parent=tab_a2[y].parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="LI")){
let href=StronicowyParser.kodowanie.DecodeHtml(tab_a2[y].getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
/**/
let dodatek=0;
let czy_naglowki=false;
for(let ff in stronasubst_tablica_rozdzialow){czy_naglowki=true;break;}
if(czy_naglowki){
for(let ss=0;ss<y;++ss){
let element_tab_a2=tab_a2[ss];
let href2=StronicowyParser.kodowanie.DecodeHtml(element_tab_a2.getAttribute('href'));
if(href2!==null){
href2=href2.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
let tocnumber;let toctext_wartosc;
if(czy_side_bar_toc){
tocnumber=element_tab_a2.querySelector('.sidebar-toc-numb');
if(!tocnumber){continue;}
toctext_wartosc=element_tab_a2.querySelector('.sidebar-toc-text').innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(tocnumber.outerHTML),"g"),"");
}else{
tocnumber=element_tab_a2.querySelector('.tocnumber');
toctext_wartosc=element_tab_a2.querySelector('.toctext').innerHTML;
}
if((tocnumber!==null)&&(toctext_wartosc!==null)){
let element_toctext=StronicowyParser.style.UsunStyle(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
//let element_tocnumber=tocnumber;//.innerHTML.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
let tab=stronasubst_tablica_rozdzialow[element_toctext];
if((tab!=null)&&(tab.length>0)){
for(let m in tab){
if(tab[m]==tocnumber){
let ile2=ile+dodatek;
if(href2==(title2_href+((ile2>1)?("_"+ile2):""))){
dodatek+=1;
}
}
}
}
}
}
}
}
ile+=dodatek;
if(href==(title2_href+((ile>1)?("_"+ile):""))){
let tab_naglowki=new Array(naglowek,naglowek2);
for(let dd=0;dd<tab_naglowki.length;++dd){
let naglowek=tab_naglowki[dd];
if((naglowek!="")&&(((dd==0)&&(!toc_fun.CzySideBarToc(toc_fun.toc[b])))||((dd==1)&&(toc_fun.CzySideBarToc(toc_fun.toc[b]))))){
let div=document.createElement('div');
div.innerHTML=naglowek;
let ul=parent.querySelector('ul');
if(ul!==null){
let element_li=ul.querySelector('li');
function WsadzDoSpisuTresciTOC(){
let ul_jeden=div.querySelector('ul');
let lis=ul_jeden.getElementsByTagName('li');
let element_li_przed=element_li;
for(let ff=lis.length-1;ff>=0;--ff){
let element_lis=lis[ff];
if(element_lis.parentNode==ul_jeden){
element_li_przed=ul.insertBefore(element_lis,element_li_przed);
}
}
}
if(element_li!==null){
WsadzDoSpisuTresciTOC();
}else{
parent.removeChild(ul);
parent.appendChild(div.querySelector('ul'));
}
}else{
parent.appendChild(div.querySelector('ul'));
}
}
}
if(toc_fun.CzySideBarToc(toc_fun.toc[b])){
UzupelnijSideBarTOC(toc_fun.toc[b]);
}
break;
}
}
}
}
}
}else{
if(!toc_fun.CzySideBarToc(toc_fun.toc[b])){
if((strona_start!==null)&&(strona_start.length>0)){
let czy_toc=strona_start.find(toc_fun.toc[b]);
if((czy_toc===null)||(czy_toc.length==0)){continue;}
let strona_start2=$(toc_fun.toc[b]).parents('.strona_start');
if(strona_start2[0]!=strona_start[0]){continue;}
}else{
let toc_strona_start=$(toc_fun.toc[b]).parents('.strona_start');
if((toc_strona_start!==null)&&(toc_strona_start.length>0)){continue;}
}
toc_fun.toc[b].classList.add('toc_ukończony');
let ul=toc_fun.toc[b].querySelector("ul");
let div=document.createElement('div');
div.innerHTML=naglowek;
$(ul).parent().each((i,rodzic)=>{
rodzic.replaceChild(div.querySelector("ul"),ul);
});
}else{
let nav=document.createElement('nav');
nav.setAttribute('id','mw-panel-toc');
nav.setAttribute('class','sidebar-toc');
nav.setAttribute('role','navigation');
nav.setAttribute('aria-labelledby','sidebar-toc-label');
nav.setAttribute('data-event-name','ui.sidebar-toc');
let div=document.createElement('div');
div.setAttribute('id','sidebar-toc-label');
div.setAttribute('class','sidebar-toc-header');
let p=document.createElement('p');
p.setAttribute('class','sidebar-toc-title');
let zawartosc=document.createTextNode(" Zawartość ")
p.appendChild(zawartosc);
let button=document.createElement('div');
button.setAttribute('class','vector-toc-uncollapse-button');
button.innerHTML='przenieś do paska bocznego';
p.appendChild(button);
let button2=document.createElement('button');
button2.setAttribute('class','vector-toc-collapse-button');
let ukryj=document.createTextNode(" ukryj ")
button2.appendChild(ukryj);
p.appendChild(button2);
div.appendChild(p)
nav.appendChild(div);
let div2=document.createElement('div');
div2.innerHTML=naglowek2;
nav.appendChild(div2.querySelector('ul'));
toc_fun.toc[b].innerHTML="";
toc_fun.toc[b].appendChild(nav);
toc_fun.toc[b].classList.add('sidebar_obecny');
UzupelnijSideBarTOC(toc_fun.toc[b]);
}
}
}
}
}
}
}
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let li=toc_fun.toc[w].getElementsByTagName('li');
let poziom;
let section=1;
let toc_section;let toc_level;let toc_section_wzor;let toc_level_wzor;
if(toc_fun.CzySideBarToc(toc_fun.toc[w])){
toc_section="sidebar-toc-section";toc_level="sidebar-toc-level";
toc_section_wzor="sidebar\\-toc\\-section\\-\\d+";toc_level_wzor="sidebar\\-toc\\-level-\\d+";
}else{
toc_section="tocsection";toc_level="toclevel";
toc_section_wzor="tocsection\\-\\d+";toc_level_wzor="toclevel\\-\\d+";
}
if((li!==null)&&(li.length>0)){
for(let z=0;z<li.length;++z){
let element_li=li[z];
if((element_li.tagName.toUpperCase()=="LI")
&&(element_li.parentNode!==null)
&&(element_li.parentNode.tagName.toUpperCase()=="UL")
&&(element_li.parentNode.parentNode!==null)
&&(element_li.parentNode.parentNode.tagName.toUpperCase()=="LI")
){
let parent=element_li.parentNode.parentNode;
let klasa=parent.getAttribute('class');
if(klasa!==null){
let klasy=parent.classList;
poziom=undefined;
for(let m in klasy){
let poziom_pasujacy=klasy[m].match(new RegExp("^"+toc_level_wzor+"$","g"));
if(poziom_pasujacy!==null){
poziom=parseInt(poziom_pasujacy.toString().match(/\d+$/).toString())+1;
break;
}
}
poziom=((poziom!==undefined)?poziom:1);
}else{poziom=1;}
}else{poziom=1;}
let klasa=element_li.getAttribute('class');
if(klasa!==null){
let czy_section=klasa.match(new RegExp(toc_section_wzor));
if(czy_section!==null){
klasa=klasa.replace(new RegExp(toc_section_wzor,"g"),toc_section+"-"+section);
element_li.setAttribute('class',klasa);
}else{
element_li.classList.add(toc_section+"-"+section);
}
let czy_level=klasa.match(new RegExp(toc_level_wzor,"g"));
if(czy_level!==null){
klasa=element_li.getAttribute('class');
if(klasa!==null){
klasa=klasa.replace(new RegExp(toc_level_wzor,"g"),toc_level+"-"+poziom);
element_li.setAttribute('class',klasa);
}
}else{
element_li.classList.add(toc_level+"-"+poziom);
}
}else{
element_li.setAttribute('class',toc_level+"-"+poziom+" "+toc_section+"-"+section)
}
section=section+1;
}
}
}
//Poczatek ustalania num
for(let w=0;w<toc_fun.toc.length;++w){
let tocnumer;
if(toc_fun.CzySideBarToc(toc_fun.toc[w])){
tocnumber=toc_fun.toc[w].getElementsByClassName('sidebar-toc-numb');
if(!tocnumber){continue;}
}else{
tocnumber=toc_fun.toc[w].getElementsByClassName('tocnumber');
}
if((tocnumber!==null)&&(tocnumber.length>0)){
let ostatnie;
for(let hh=0;hh<tocnumber.length;++hh){
let element_tocnumber=tocnumber[hh];
let zawartosc=element_tocnumber.innerHTML;
if(zawartosc.match(/^numer\./g)){
if(ostatnie!=null){
element_tocnumber.innerHTML=zawartosc.replace(/^numer\./g,ostatnie+".");
}else{
element_tocnumber.innerHTML=zawartosc.replace(/^numer\./g,"");
}
}else{
ostatnie=zawartosc;
}
}
}
}
//Koniec ustalania num
}
}
StronicowyParser.PrzeIndeksujWszystkieTOC=function(element,czy_numerowac){
let toc_fun=new StronicowyParser.ListaNodeTOC(element,czy_numerowac);
let rodzic=((element)?element:(document.querySelector("body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text")));
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let d=0;d<toc_fun.toc.length;++d){
let toc=toc_fun.toc[d];
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc);
if(!czy_side_bar_toc){
let potomek=$(rodzic).find(toc);
if((potomek===null)||(potomek.length==0)){
continue;
}
}
let a=toc.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
for(let p=0;p<a.length;++p){
let element_a=a[p];
let poczatek=element_a.parentNode.getAttribute('id');
if(poczatek=='toc-mw-content-text'){continue;}
if(!element){
let tab_a=$('.strona_start .ciało_strona').find(element_a);
if((tab_a!==null)&&(tab_a.length>0)){
continue;
}
}
let element_toctext;
let text;
if(czy_side_bar_toc){
element_toctext=element_a.querySelector('.sidebar-toc-text');
let num=element_toctext.querySelector('.sidebar-toc-numb');
if(!num){continue;}
text=element_toctext.innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(num.outerHTML),"g"),"");
}else{
element_toctext=element_a.querySelector('.toctext');
text=element_toctext.innerHTML;
}
if(element_toctext!==null){
let strona=StronicowyParser.style.UsunStyle(text).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
let c=1;
for(let v=0;v<p;++v){
let element_a2=a[v];
let poczatek=element_a2.parentNode.getAttribute('id');
if(poczatek=='toc-mw-content-text'){continue;}
let element_toctext2;
let text2;
if(czy_side_bar_toc){
element_toctext2=element_a2.querySelector('.sidebar-toc-text');
let num=element_toctext2.querySelector('.sidebar-toc-numb');
if(!num){continue;}
text2=element_toctext2.innerHTML.replace(new RegExp(StronicowyParser.wzor.BezZnakowSpecjalnych(num.outerHTML),"g"),"");
}else{
element_toctext2=element_a2.querySelector('.toctext');
text2=element_toctext2.innerHTML;
}
if(element_toctext2!==null){
let strona2=StronicowyParser.style.UsunStyle(text2).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&/g,"&").replace(/ /g,"_");
if(strona==strona2){
++c;
}
}else{
c=undefined;
break;
}
}
if(c!==undefined){
if(c==1){
element_a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml("#"+strona));
}else{
element_a.setAttribute('href',StronicowyParser.kodowanie.EncodeHtml("#"+strona)+"_"+c);
}
}
}
}
}
}
}
}
StronicowyParser.IndeksujHeadLine=function(element){
let strona_start=$('.strona_start');
for(let i=0;i<strona_start.length;++i){
if(strona_start[i]==element){
let cialo=$(element).find('.ciało_strona');
if((cialo!==null)&&(cialo.length>0)){
element=cialo[0];
}
break;
}
}
let headline=((element)?element:(document.querySelector("body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text"))).getElementsByClassName('mw-headline');
if((headline!==null)&&(headline.length>0)){
for(let i=0;i<headline.length;++i){
let el=headline[i];
if(!element){
let tab_a=$('.strona_start .ciało_strona').find(el);
if((tab_a!==null)&&(tab_a.length>0)){
continue;
}
}
let id0=StronicowyParser.style.UsunStyle(el.innerHTML)
.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/<i>/g,"").replace(/<\/i>/g,"").replace(/<b>/g,"").replace(/<\/b>/g,"").replace(/ /g,"_").replace(/&/g,"&");
let c=1;
for(let j=0;j<i;++j){
let el1=headline[j];
let id1=StronicowyParser.style.UsunStyle(el1.innerHTML)
.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/<i>/g,"").replace(/<\/i>/g,"").replace(/<b>/g,"").replace(/<\/b>/g,"").replace(/ /g,"_").replace(/&/g,"&");
if(id0==id1){
++c;
}
}
let span=null;
if((el.parentNode!==null)&&(el.parentNode.tagName.toUpperCase().match(/^H\d+$/g))){
span=el.parentNode.querySelector('span.numeracja');
if(span===null){
span=el.parentNode.querySelector('span');
}else{
span=span.nextElementSibling;
}
}
function IdNazwa(id0){
el.setAttribute('id',id0);
if((span!==null)&&(span!=el)){
span.setAttribute('id',StronicowyParser.kodowanie.EncodeHtml(id0,false,true).replace(/%/g,"."));
}
}
if(c==1){IdNazwa(id0);}else{IdNazwa(id0+"_"+c);}
}
}
}
StronicowyParser.PoprawRozdzialyStron=function(element_analizowany){
let parent=element_analizowany.parentNode;
let headline=parent.querySelector('.mw-headline');
let h_numer_tag=headline.parentNode;
let h_numer=StronicowyParser.hnumer.PoziomNaglowka(h_numer_tag);
if(h_numer===null){return;}
let headline_element=element_analizowany.getElementsByClassName('mw-headline');
if((headline_element!==null)&&(headline_element.length>0)){
let HNumer=StronicowyParser.hnumer.LiczonyHNumer();
let h_numer_old=h_numer;
let tab_headline_element=new Array();
for (let i=0;i<headline_element.length;++i){tab_headline_element[i]=headline_element[i];}
for(let i=0;i<tab_headline_element.length;++i){
let h_element=tab_headline_element[i].parentNode;
let h_numer_element=StronicowyParser.hnumer.PoziomNaglowka(h_element);
let h_numer=HNumer(h_numer_element)+h_numer_old;
if(h_numer_element!=h_numer){
let outerHTML=h_element.outerHTML;
outerHTML=outerHTML.replace(/^<[Hh]\d+/g,"<H"+((h_numer<=6)?h_numer:6));
outerHTML=outerHTML.replace(/<\/[Hh]\d+>$/g,"</H"+((h_numer<=6)?h_numer:6)+">");
h_element.outerHTML=outerHTML;
h_element.classList.remove('mw-hnumber-'+h_numer_element);
if(h_numer>6){
h_element.classList.add('mw-hnumber-'+h_numer);
}
}
}
}
}
StronicowyParser.ZamieniajNazwyLinkuTOC=function(hn_element,czy_numerowac,stronasubst_latex){
let id_stara_nazwa=hn_element.getAttribute('id');
if(id_stara_nazwa===null){console.log("Nie znalazłem id element nagłówka.");return;}
let nowa_nazwa=StronicowyParser.style.UsunStyle(hn_element.innerHTML);
if(stronasubst_latex){
nowa_nazwa=nowa_nazwa.replace(/<[^<>]+>/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"").replace(/\s+/g," ");
}else{
nowa_nazwa=nowa_nazwa.replace(/<a\s+[^<>]+>/g,"").replace(/<a\s*>/g,"").replace(/<\/a\s*>/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"").replace(/\s+/g," ");
}
let rodzic=undefined;
let tab_rodzic=$(hn_element).parents(".strona_start");
if((tab_rodzic!==null)&&(tab_rodzic.length>0)){
rodzic=tab_rodzic[0];
}
let toc_fun=new StronicowyParser.ListaNodeTOC(rodzic,czy_numerowac);
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
let toc=toc_fun.toc[w];
let czy_side_bar_toc=toc_fun.CzySideBarToc(toc);
if((!czy_side_bar_toc)&&(rodzic)){
let potomek=$(rodzic).find(toc);
if((potomek===null)||(potomek.length==0)){
continue;
}
}
let a=toc.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
for(let p=0;p<a.length;++p){
let element_a=a[p];
let poczatek=element_a.parentNode.getAttribute('id')
if(poczatek=='toc-mw-content-text'){continue;}
let innerhref=StronicowyParser.style.UsunStyle(StronicowyParser.kodowanie.DecodeHtml(a[p].getAttribute('href'),false).replace(/^#/g,""));
if(innerhref==id_stara_nazwa){
let toctext;
if(czy_side_bar_toc){
toctext=a[p].querySelector('.sidebar-toc-text');
}else{
toctext=a[p].querySelector('.toctext');
}
if(toctext!==null){
if(czy_side_bar_toc){
let num=toctext.querySelector('.sidebar-toc-numb');
if(!num){continue;}
toctext.innerHTML=num.outerHTML+nowa_nazwa;
}else{
toctext.innerHTML=nowa_nazwa;
}
}
break;
}
}
}
}
}
StronicowyParser.IndeksujHeadLine(rodzic);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic,czy_numerowac);
}
StronicowyParser.LimitTOC=function(czy_numerowac,stronasubst_ukrywaj_toc){
let rodzic=$('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
function TOC_ukrywaj(numer){
if(numer>1){
let toc_fun=new StronicowyParser.ListaNodeTOC(rodzic,czy_numerowac);
if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
for(let w=0;w<toc_fun.toc.length;++w){
toc_fun.toc[w].classList.add('toclimit');
toc_fun.toc[w].classList.add('toclimit-'+numer);
}
}
}
}
TOC_ukrywaj(stronasubst_ukrywaj_toc);
}
StronicowyParser.DodawajRozdzialyDoTOCSpisTresci=function(element,czy_numerowac,stronasubst_latex,stronasubst_mathml){
StronicowyParser.AktualizujSpisTresciModuluStrony(((element)?(new Array(element)):undefined),new Array(),StronicowyParser.pageinfo.fullname,new Array(),new Array(),new Array(),czy_numerowac,stronasubst_latex,stronasubst_mathml,true);
StronicowyParser.IndeksujHeadLine(element);
StronicowyParser.PrzeIndeksujWszystkieTOC(element,czy_numerowac);
}
StronicowyParser.NaprawNaglowkiStrony=function(element,czy_numerowac){
let rodzic=$('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if((rodzic==null)||(rodzic.length==0)){return;}
if(element){
if(element!=document){
rodzic=rodzic.find(element);
if((rodzic==null)||(rodzic.length==0)){return;}
}
}
let h=rodzic.find("h1, h2, h3, h4, h5, h6");
if((h!==null)&&(h.length>0)){
let czy_indeksuj=undefined;
for(let i=0;i<h.length;++i){
let element_h=h[i];
let h_toc=rodzic.find('.toc, .toc_spis').find(element_h);
if((h_toc!==null)&&(h_toc.length>0)){continue;}
let headline=element_h.querySelector(".mw-headline");
if(headline===null){
let id=element_h.innerHTML.replace(/[\s_]+/g,"_");
let nowe_id=StronicowyParser.kodowanie.EncodeHtml(id,false,true).replace(/%/g,".");
let element_span_przed=((id!=nowe_id)?(mw.html.element("span",{id:nowe_id},"")):"");
let element_span=mw.html.element("span",{class:"mw-headline",id:id},element_h.innerHTML);
let h_id=element_h.getAttribute("id");
let element_nowe_h=mw.html.element(element_h.tagName,((h_id)?{id:h_id}:null),new mw.html.Raw(element_span_przed+element_span));
element_h.outerHTML=element_nowe_h;
czy_indeksuj=true;
}
}
if(czy_indeksuj){
StronicowyParser.IndeksujHeadLine(rodzic[0]);
StronicowyParser.PrzeIndeksujWszystkieTOC(rodzic[0],czy_numerowac);
}
}
}
StronicowyParser.ZmieniajNazwyLinkowNaLinkiPodrecznika=function(rodzic){
if(!rodzic){
let $rodzic=$('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
if(($rodzic==null)||($rodzic.length==0)){return;}
rodzic=$rodzic[0];
}
let a=$(rodzic).find('a');
if((a!==null)&&(a.length>0)){
let bookname=StronicowyParser.pageinfo.bookname.replace(/[\s_]+/g," ");
let re_str=StronicowyParser.wzor.BezZnakowSpecjalnych(bookname);
re_str=re_str.replace(/^(.)/g,function(s){
return "["+s.toLowerCase()+s.toUpperCase()+"]";
})
re_str="^"+re_str+"\\/";
let re=new RegExp(re_str);
for(let i=0;i<a.length;++i){
let element_a=a[i];
let parents=$(element_a).parents('.mw-other-articles');
if((parents!==null)&&(parents.length>0)){continue;}
let nazwa=element_a.innerHTML.replace(/[\s_]+/g," ");
let href=element_a.getAttribute('href');
let strona=href?StronicowyParser.kodowanie.DecodeHtml(href,true).replace(/^\/wiki\//g,""):href;
if((strona)&&(nazwa==strona)&&(re.test(nazwa))){
nazwa=nazwa.replace(re,"");
element_a.innerHTML=nazwa;
}
}
}
}
4kye98zpjzdb8tp03oq8yr0x2izzoj2