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]]&nbsp;{{{nagłówek|Dokumentacja{{#switch: {{NAMESPACE}}|Szablon=&nbsp;szablonu|Moduł=&nbsp;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]].&nbsp;}}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]]&nbsp;{{{nagłówek|Dokumentacja{{#switch: {{NAMESPACE}}|Szablon=&nbsp;szablonu|Moduł=&nbsp;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]].&nbsp;}}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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local 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&amp;action=edit&amp;section=1|nazwa=tutan}} {{LinkURL|strona=https://upload.wikimedia.org/wikibooks/pl/a/a0/2004zad28rys1.gif|nazwa=Pomoc dla użytkowników angielskiej Wikipedii}} ---- {{PobierzNumerArtykułu|Macierze|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Algebra liniowa/Macierze}} ----a {{PobierzNumerArtykułu|O podręczniku|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=C++/O podręczniku}} ----a {{PobierzNumerArtykułu|Anioł pasterzom mówił|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Śpiewnik/Anioł pasterzom mówił}} ----Chemia organiczna {{PobierzNumerArtykułu|Koordynacja|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}} ----a {{PobierzNumerArtykułu|Węglowodory|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}} ---- {{PobierzNumerArtykułu|Aneks|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}} ---- {{PobierzNumerArtykułu|Słownik pojęć|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Koordynacja}} ---- {{PobierzNumerArtykułu|Egipcjanie|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Ludzie paleolitu}} ---- {{PobierzNumerArtykułu|Bibliografia|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Atlas flory Polski/Bibliografia}} ---- {{PobierzNumerArtykułu|Rachunek różniczkowy|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza matematyczna/Rachunek różniczkowy}} ---- : {{s|PobierzNumerNagłówka|Starożytny Rzym|który{{=}}1}} → {{PobierzNumerNagłówka|Starożytny Rzym|który=1|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Źródła historyczne}}. * Z wielopoziomową pozycją artykułu : {{s|PobierzNumerNagłówka|Starożytny Rzym|poziomowo{{=}}tak|który{{=}}1}} → {{PobierzNumerNagłówka|Starożytny Rzym|poziomowo=tak|który=1|nazwa przestrzeni nazw=(main)|nazwa jednostki=Historia powszechna/Źródła historyczne}}. {{LinkURL|strona=https://upload.wikimedia.org/wikipedia/commons/a/aa/Tetrahedron_grey.svg}} ---- {{PobierzNumerArtykułu|Wymowa|nagłówek=|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fiński/Wymowa}} ---- {{#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)?("&section="+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(/&amp;/g,"&").replace(/&nbsp;/g," "); let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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)?("&section="+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(/&amp;/g,"&").replace(/&nbsp;/g," "); let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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)?("&section="+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(/&amp;/g,"&").replace(/&nbsp;/g," "); let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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)?("&section="+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(/&amp;/g,"&").replace(/&nbsp;/g," "); let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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)?("&section="+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(/&amp;/g,"&").replace(/&nbsp;/g," "); let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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)?("&section="+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(/&amp;/g,"&").replace(/&nbsp;/g," "); let hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(numeracja.length<numer){numeracja.push(1);} else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);} else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);}; if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } } 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(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(numeracja.length<numer){numeracja.push(1);} else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);} else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);}; if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } } 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(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(numeracja.length<numer){numeracja.push(1);} else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);} else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);}; if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } } 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(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(numeracja.length<numer){numeracja.push(1);} else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);} else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);}; if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } } 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(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } 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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }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+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial_json=(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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial_json){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial_json=(((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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial_json){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial_json=(((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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial_json){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial_json=(((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('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial_json){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," "); let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;} if(pierwszy_naglowek){ function CzyTylkoJedenGlownyNaglowek(){ let spis=undefined; if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } for(let m=i+1;m<headline_artykul.length;++m){ let element_headline=headline_artykul[m]; let head=$(headline_artykul[m]).parents('.strona_start'); if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){ let parent=element_headline.parentNode; let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent); if(poziom_naglowka_nastepny<=poziom_naglowka){ jeden_glowny_naglowek=false; pierwszy_naglowek=false; return; } } } jeden_glowny_naglowek=true; pierwszy_naglowek=false; } CzyTylkoJedenGlownyNaglowek(); } numer=fun_hnumer(poziom_naglowka); if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){ fun_hnumer=fun_hnumer_3.pop(); numeracja=numeracja_3.pop(); poziom_naglowka_spisu_tresci.pop(); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false; } let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output'); let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output'); let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output'); if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){ let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,""); let rozdzial_naglowka=undefined; if((json_wikikod)&&(json_wikikod[nazwa])){ let rozdzial=json_wikikod[nazwa]; for(let p in rozdzial){rozdzial_naglowka=p;break;} } let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]); if((!json_wikikod)||((json_wikikod[nazwa])&&(json_wikikod[nazwa][""]))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ console.log(nazwa,"TYTANA") main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null); let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(numeracja.length<numer){numeracja.push(1);} else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);} else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);}; if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=((prefix!=="")?prefix:"")+numeracja.join('.')+".&nbsp;"; } }else{ console.log(nazwa,"TYTANB") let numer_rozdzialu; for(let p in rozdzial_json){numer_rozdzialu=p;break;} numeracja=numer_rozdzialu.split("."); for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);}; let czy_ponumerowany=parent.getElementsByClassName('numeracja'); let numeruj=undefined; if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;} if(!numeruj){ let span=document.createElement('span'); span.setAttribute('class',"numeracja"); span.innerHTML=numer_rozdzialu+".&nbsp;"; parent.insertBefore(span,parent.firstChild); }else{ czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;"; } } } if(!jeden_glowny_naglowek){ if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){ poziom_naglowka_spisu_tresci.push(poziom_naglowka); poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true; tak=true; fun_hnumer_3.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); numeracja_3.push(numeracja); numeracja=new Array(0); } }else{ jeden_glowny_naglowek=false; numeracja_2.push(numeracja); numeracja=new Array(); fun_hnumer_2.push(fun_hnumer); fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer(); } } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyArtykulu=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; let czy_wikikod=/^[_\s]*$/g.test(wikikod); if(!czy_wikikod){ var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if(artykul==""){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul); if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerArtykułu|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); } StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;}; await StronicowyParser.muteks.zablokuj(true); let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output'); if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} let aktualna_strona=StronicowyParser.pageinfo.fullname; let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," "); if((artykul==book)||(artykul=="Wersja do druku")){ if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; return; } if(tab_promise){tab_promise.push(true);}; StronicowyParser.api.ZadaniaApi({ action: 'expandtemplates', format: 'json', prop: 'wikitext', title: aktualna_strona, text: '{{PobierzNumerNagłówka|'+artykul+'|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}', smaxage: 600, maxage: 600, }).then(async function(data){ await StronicowyParser.muteks.zablokuj(true); let wikikod=data.expandtemplates.wikitext; wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); let czy_wikikod=/^[_\s]*$/g.test(wikikod); if((czy_wikikod)||(wikikod=="(błąd)")){ wikikod=""; }else{ wikikod=wikikod+"."; } if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((error) => {if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){ if(!gadget_numerowanie){if(tab_promise){tab_promise.pop();};return;} await StronicowyParser.muteks.zablokuj(true); let parent=element.parentNode; if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.pop();};return;} if(tab_promise){tab_promise.push(true);}; new Promise((resolve,reject)=>{ let czas=0; function Naglowek(resove,reject){ let numeracja=parent.querySelector('.numeracja'); if(numeracja===null){ if(czas>60000){reject();}; czas+=300; setTimeout(()=>{Naglowek(resove,reject)},300); }else{ resolve(numeracja); } } setTimeout(()=>{ Naglowek(resolve,reject); },300); }).then(async function(numeracja){ await StronicowyParser.muteks.zablokuj(true); let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,""); if(tab_promise){tab_promise.push(true);}; zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; }).catch((data)=>{if(tab_promise){tab_promise.pop();};}); StronicowyParser.muteks.odblokuj(); if(tab_promise){tab_promise.pop();}; } } StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow(); }); 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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#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(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#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(/&amp;/g,"&").replace(/&nbsp;/g,"_"); title_2=strona_title_hash.match(/[^\/]+$/g).toString().replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,""); }else{ strona_title_hash=element_strona_hash.replace(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&amp;/g,"&").replace(/&nbsp;/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(/&nbsp;/g,"_").replace(/&amp;/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(/&nbsp;/g,"_").replace(/&amp;/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