Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.39.0-wmf.26 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:OzdobnaNawigacja 10 2916 438896 415519 2022-08-28T08:39:24Z Persino 2851 wikitext text/x-wiki <includeonly><!-- -->{{Div|klasa="noprint|styl=clear:both; margin: 0em; padding:1px 0px 6px 0px;|<!-- -->{{Tabelka|opcje=border="0" width="100%"|styl=background-color: #FFFFE6; border:1px Solid #C5C58B;|<!-- -->{{Wiersz|<!-- -->{{Komórka|opcje=width="33%" align="left" |'''«'''}}<!-- -->{{Komórka|opcje=align="center" rowspan="2"|{{Small|'''''{{{Podrecznik}}}'''''}}{{Br}}''{{Small|{{{ObecnaStrona}}}}}''}}<!-- -->{{Komórka|opcje=width="33%" align="right" | '''»'''}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|opcje=align="left"|{{Small|{{{PoprzStrona}}}}}}}<!-- -->{{Komórka|opcje=align="right"|{{Small|{{{NastStrona}}}}}}}<!-- -->}}<!-- -->{{Wiersz}}<!-- -->}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 87mbezi139mfcfjjei51dgcvl3vm4nw Angielski/Zawody i życie codzienne 0 13239 438900 236286 2022-08-28T10:33:25Z CommonsDelinker 1569 Replacing Football_iu_1996.jpg with [[File:Football_in_Bloomington,_Indiana,_1996.jpg]] (by [[:c:User:CommonsDelinker|CommonsDelinker]] because: [[:c:COM:FR|File renamed]]: [[:c:COM:FR#FR2|Criterion 2]] (meaningless or ambiguous name)). wikitext text/x-wiki == Wstęp == Na tej lekcji poznasz: *słownictwo związane z pracą, *różnice pomiędzy ''do'' a ''make''. == Zawody (professions) == Nazwy zawodów w języku angielskim tworzy się najczęściej przez dodanie końcówki ''-er'' do nazwy czynności, np. ''drive'' (prowadzić samochód) – ''driver'' (kierowca). Żeby powiedzieć o wykonywanym zawodzie, używamy czasu ''Present Simple'', a o wykonywanym w przeszłości ''Past Simple'' np. ''I'm a miner'' (jestem górnikiem), ''I was a football player'' (byłem piłkarzem). <gallery> File:Medical clinic work in Couva DVIDS126504.jpg|doctor Plik:Sidewalk chalk in school.JPG|teacher Plik:Surgeons_at_Work.jpg|surgeon Plik:US_Navy_050427-N-9693B-004_Dental_Hygienist_Liza_Siwa_conducts_a_routine_cleaning.jpg|dentist Plik:Alsumaria_journalist.jpg|journalist Plik:Monica-s_Dad_-_IMG_9606_(by).jpg|photographer Plik:Boy_meets_barber.JPG|hairdresser Plik:Fu-Hsin Trade & Arts School student drawing 20031009.jpg|painter Plik:Bundesarchiv_B_145_Bild-F001142-0001,_Bonn,_Universitäts-Kinderklinik.jpg|nurse Plik:HH_Polizeihauptmeister_MZ.jpg|policeman File:100lr_JWGB.jpg|cook File:Poczet_sztandarowy_parafii_św._Anny_w_Janowie.jpg|miner File:Football in Bloomington, Indiana, 1996.jpg|football player Plik:Taxi_Driver_in_Classic_Car_-_Habana_Vieja_-_Havana_-_Cuba.JPG|taxi driver File:Newone.jpg|programmer File:Alejandro_Sanz_2007.09.04_021.jpg|singer File:Butcher_Palermo.JPG|butcher File:Clerical_clothing.jpg|priest File:IA_men.jpg|soldier File:Advokat,_Engelsk_advokatdräkt,_Nordisk_familjebok.png|lawyer </gallery> *'''keeper''' – pracownik *'''businessman''' – biznesmen *'''retired''' – na emeryturze *'''pension''' – renta *'''salary''' – wynagrodzenie *'''unemployed''' – bezrobotny *'''payment''' – zapłata == Phrases == *'''I'm looking for a job''' – Szukam pracy *'''What's your education?''' – Jakie masz wykształcenie? *'''I work as a...''' – Pracuje jako... == Grammar == === Make and do === W tym dziale omówimy jeden z najczęstszych błędów popełnianych przez Polaków podczas mówienia w języku angielskim. Czasowniki '''do''' oraz '''make''' tłumaczy się jako robić, zrobić. Podobne tłumaczenie powoduje, że Polacy mylą ich znaczenia. Ogólnie czasownik '''do''' oznacza tyle co ''wykonywać jakąś czynność'', ''być zajętym w robieniu czegoś''. Czasownik ten można także wykorzystywać wtedy, gdy w ogóle nie precyzujemy, o jaką konkretną czynność nam chodzi. '''Make''' oznacza tyle co ''stworzyć coś, czego wcześniej nie było''. Jeżeli nie jesteśmy pewni, jaka forma jest odpowiednia, bezpieczniej jest użyć czasownika '''make''', ponieważ ma więcej znaczeń i jest mniejsza szansa na pomyłkę. == Ćwiczenia == EX1. Przetłumacz na angielski. *John jest programistą. *Jestem nauczycielem. *On był piłkarzem. *Wyspiański był malarzem. *Simon jest księdzem. *Dawid jest motocyklistą. <noinclude> {{Nawigacja|Angielski| [[Angielski/Ubrania|Ubrania]]| [[Angielski/List do przyjaciela|List do przyjaciela]]| }}</noinclude> l8463atrl408zivvih87pfkw2437xq1 Szablon:Dokumentacja 10 19880 438868 437943 2022-08-27T13:09:25Z 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 --> {{PrzytnijTekst|{{{zawartość|{{ {{ #ifexist: {{{1|{{Dokumentacja/nazwa}}}}} | {{{1|{{Dokumentacja/nazwa}}}}} | ns:0 }} }}}}}}}</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>}}}} 2d67aa2mavxs9bxya80brhzsrbqlnna Szablon:Dokumentacja/styles.css 10 33615 438869 437526 2022-08-27T13:09:59Z Persino 2851 sanitized-css text/css .template-documentation { background-color:#ECFCF4; border:1px solid #a2a9b1; clear:both; margin:1em 0pt 0pt; padding:5px; } i80hkksosf6gj0v60rjudxb06iitg2c Szablon:Przykład użycia szablonu w tabeli 10 33653 438865 438863 2022-08-27T11:59:26Z Persino 2851 wikitext text/x-wiki <includeonly><!-- -->{{Wiersz|<!-- -->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli style_przykładu_komórka_pierwsza|<!--Przykładowe i nie tylko style start--><templatestyles src="Szablon:Przykład użycia szablonu w tabeli/styles.css" /><!--Przykładowe i nie tylko style koniec-->{{Code|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}s{{!}}1{{=}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|{{!}}{{((}}#expr:{{((}}_{{))}}+1{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}}}{{))}}}}{{{po|}}}}}}}<!-- -->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli style_przykładu_komórka_druga|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|{{((}}!{{))}}{{((}}#if:{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^[%w%s_]*{{=}}{{))}}{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{((}}_{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{))}}}}{{))}}}}{{{po|}}}}}<!-- -->{{#if:{{{uwagi|}}}|<!-- -->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{uwagi}}}}}<!-- -->}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> nr9hr5s7g6glo0pih5pzstuntxofvjh Wikipedysta:Persino/Szczególna teoria względności/Postulaty szczególnej teorii względności i rodzaje układów 2 46675 438893 379271 2022-08-28T08:09:41Z Persino 2851 wikitext text/x-wiki <noinclude>{{SkomplikowanaStronaStart}}</noinclude> Szczególna teoria względności jest współczesną teorią fizyczną. Teoria ta wraz z mechaniką kwantową stanowią podstawę współczesnej fizyki i techniki. Jest ona formułowana dla układów inercjalnych, dalej transformacje w szczególnej teorii względności dla prędkości o wiele mniejszych od prędkości światła przechodzą w transformację Galileusza też dla układów inercjalnych, a dynamika Einsteina przy tych warunkach w dynamikę Newtona. Szczególna teoria względności jest teorią stworzoną do opisu układów słabozakrzywionych fizycznych (transformacje Lorentza i dynamika Einsteina), a nie globalnie (lokalnie) płaskich matematycznych. Będziemy w tej książce badać układy globalnie (lokalnie) płaskie matematyczne i dowiemy się, że tam tensory (prędkości) są o globalnie (lokalnie) stałym kierunku, zwrocie i wartości, a także, że rozmiary wszechświata w tym układzie sa zerowe oraz jego masa, ładunek elektryczny i inne ładunki zachowalne też są zerowe, a także gęstość masy oraz ładunku i prądu elektrycznego oraz innych ładunków zachowalnych są o globalnie (lokalnie) stałej zerowej wartości, a także prędkość światła tam jest zerowa, a w układach słabozakrzywionych (jak udowodnimy to są układy prawie płaskie) jest tak wszystko, jak fizycy stwierdzili doświadczalnie. Z tych układów będziemy przechodzić do układów słabozakrzywionych fizycznych, w których można wyróżnić nowy rodzaj układów lokalnie płaskich (one są fizyczne), względem ogólnej teorii względności, które w rzeczywistości są układami słabozakrzywionymi. ==Postulaty szczególnej teorii względności== {{Postulaty|uchwyt=GG|czego=Szczególnej teorii względności|tekst=Są trzy postulaty tej teorii fizycznych, dwa podstawowe i trzeci mówiący o zgodności mechaniki Einsteina z mechaniką Newtona dla małych prędkości w porównaniu z prędkości światła {{Formuła|<MATH>c\;</MATH>}}, one przedstawiają się w postaci: *'''Postulat pierwszy''' - jest uogólnieniem zasady względności Galileusza na dowolne procesy fizyczne, postulat ten zwany jest ''zasadą względności'' lub ''relatywistyczną zasadą względności Einsteina''. Brzmi on: prawa fizyki są spełnione we wszystkich inercjalnych układach współrzędnych, tzn. w takich układach, które poruszają się ze stałą prędkością względem innych układów inercjalnych. *'''Postulat drugi''' - we wszystkich układach współrzędnych prędkość światła jest jednakowa. *'''Postulat trzeci''' - transformacje Lorentza i dynamika Einsteina w szczególnej teorii względności (mechanika relatywistyczna) dla prędkości {{Formuła|<MATH>||\vec v||\ll c\;</MATH>}} przechodzą kolejno w transformacje Galileusza i dynamikę Newtona (trzy zasady dynamiki Newtona) w mechanice Newtona (mechanika klasyczna nierelatywistyczna). }} == Układy współrzędnych i odniesienia oraz we współrzędnych uogólnionych i krzywoliniowych, a także zakrzywione == '''Układy współrzędnych''' są w czasoprzestrzeni w szczególnej teorii względności i ogólnej teorii względności oraz w przestrzeni zwykłej w mechanice Newtona, '''układy odniesienia''' są za to w przestrzeni zwykłej w mechanice Newtona i Einsteina. '''Współrzędne krzywoliniowe''' są definiowane jako ze one oddają bezpośredni sens fizyczny równań mechaniki Newtona i Einsteina, a '''współrzędne uogólnione''' ogólnie takiego sensu nie mają, ale też opisują równania Newtona i Einsteina. '''Współrzędne układu zakrzywionego''' są to takie współrzędne, które w lokalnej płaskości opisywane są przez przestrzeń Minkowskiego. <noinclude>{{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}</noinclude><noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> l8ctwikpecuda9ttd9nk8c15hlz5n6b Wikipedysta:Persino/Szczególna teoria względności/Konwencje Newtona i Einsteina - formułowanie drugiej zasady dynamiki Einsteina-Newtona 2 46693 438895 379255 2022-08-28T08:25:22Z Persino 2851 /* Procedura uniezerowacyjna (nierówność zer) dla równań ruchu w konwencji einsteinowskiej i newtonowskiej */ wikitext text/x-wiki <noinclude>{{SkomplikowanaStronaStart}}</noinclude> Będziemy tutaj rozważali równania ruchu, a także jak transformują się wielkości tensorowe i wskaźnikowe. ==Definicja postaci einsteinowskiej i newtonowskiej== '''Postać einsteinowska''' jest to, co opisuje czasoprzestrzeń, a czas w niej nie jest parametrem, tylko współrzędną. A '''postać newtonowska''' jest to, co opisuje przestrzeń zwykłą, a czas w niej nie jest współrzędną, tylko parametrem. Postać newtonowska jest podzbiorem postaci einsteinowskiej. W postaci newtonowskiej jest spełniona absolutność czasu (tzn. przy przejściu z jednego układu współrzędnych do drugiego czas jest niezmienniczy), a w postaci einsteinowskiej już nie musi być. ==Jak transformować zmienne kowariantne i kontrawariantne w szczególnej teorii względności i mechanice Newtona== Powiemy jak transformują się zmienne kowariantne i kontrawariantne bez nadkreślenia i z nadkreśleniem. W następnych dwóch rozdziałach będziemy rozważać jak wygląda macierz transformacji {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}\;</MATH>}} i {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}\;</MATH>}} działająca na pewne typy zmiennych w rozważanych transformacjach typu: {{CentrujWzór|<MATH>\overline X^{\mu}={\overline \Lambda^{\mu}}_{\nu}X^{\nu}\wedge \overline X_{\mu}={\Lambda^{\nu}}_{\mu}X_{\nu}\Rightarrow X^{\mu}={ \Lambda^{\mu}}_{\nu}\overline X^{\nu}\wedge X_{\mu}={\overline\Lambda^{\nu}}_{\mu}\overline X_{\nu}\;</MATH>|PP1}} Jak dla transformacji tensorów jednowskaźnikowych kowariantnych i kontrawiantnych, podobnie jest jak w tensorach {{Formuła|<MATH>X^{\nu}\;</MATH>}}, {{Formuła|<MATH>X_{\nu}\;</MATH>}}, {{Formuła|<MATH>\overline X^{\nu}\;</MATH>}} i {{Formuła|<MATH>\overline X_{\nu}\;</MATH>}}, gdy wskaźnik występuje po przecinku w układach globalnie (lokalnie) płaskich lub po średniku w układach zakrzywionych. Podobne są rozważania, gdy transformujemy względem jakiegoś wskaźnika (gdy wskaźników górnych i dolnych są jakieś liczby w zmiennych), jak jest w przemyśleniach w {{LinkWzór|PP1}} dla jednego wskaźnika. ===Szczególna teoria względności=== Do szczególnej teorii względności będziemy stosowali tylko postać einsteinowską. Do rozważań będziemy stosowali transformację tensorów jednowskaźnikowych kowariantnych i kontrawariantnych {{LinkWzór|PP1}}, którą można uoogólnić dla tensorów o iluś wskaźnikach górnych i dolnych. Dla szczególnej teorii względności macierz transformacji w układach globalnie (lokalnie) płaskich dla współrzędnych kontrawariantnych bez nadkreślenia dla macierzy transformacji {{LinkWzór|1.63a|Transformacje macierzy transformacji Einsteina i Newtona, układy globalnie (lokalnie) płaskie a słabozakrzywione}} mamy {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=M\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=M^{-1}\;</MATH>}}), a dla współrzędnych kowariantnych bez nadkreślenia jest w postaci {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=M^{-1}\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=M\;</MATH>}}), a dla przestrzeni słabozakrzywionych dla współrzędnych kontrawiariantnych bez nadkreślenia dla macierzy transformacji {{LinkWzór|X5|Transformacje macierzy transformacji Einsteina i Newtona, układy globalnie (lokalnie) płaskie a słabozakrzywione}} mamy {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=\overline M\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=\overline M^{-1}\;</MATH>}}), a dla współrzędnych kowariantnych bez nadkreślenia jest w postaci {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=\overline M^{-1}\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=\overline M\;</MATH>}}). ===Mechanika Newtona=== Do mechaniki Newtona będziemy stosowali postać newtonowską i einsteinowską. Do rozważań będziemy stosowali transformację tensorów jednowskaźnikowych kowariantnych i kontrawariantnych {{LinkWzór|PP1}}, którą można uoogólnić dla tensorów o iluś wskaźnikach górnych i dolnych. W mechanice Newtona, jeśli traktować czas {{Formuła|<MATH>t\;</MATH>}} jako parametr to macierz transformacji jest {{Formuła|<MATH>{\overline\Lambda^k}_l\;</MATH>}} (lub {{Formuła|<MATH>{\Lambda^k}_l\;</MATH>}}) to wtedy będziemy stosowali postać newtonowską, a jeśli tam traktować czas jako współrzędną to macierz jest wtedy taka {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}\;</MATH>}} (lub {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}\;</MATH>}}), zatem wtedy dla mechaniki Newtona będziemy stosować transformację jak w postaci einsteinowskiej, wtedy macierz transformacji w układach globalnie (lokalnie) płaskich dla współrzędnych kontrawariantnych bez nadkreślenia dla macierzy transformacji {{LinkWzór|1.63d|Transformacje macierzy transformacji Einsteina i Newtona, układy globalnie (lokalnie) płaskie a słabozakrzywione}}, mamy {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=M\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=M^{-1}\;</MATH>}}), a dla współrzędnych kowariantnych bez nadkreślenia jest w postaci {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=M^{-1}\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=M\;</MATH>}}), a dla przestrzeni słabozakrzywionych dla współrzędnych kontrawariantnych bez nadkreślenia dla macierzy transformacji {{LinkWzór|X4a|Transformacje macierzy transformacji Einsteina i Newtona, układy globalnie (lokalnie) płaskie a słabozakrzywione}}}, mamy {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=\overline M\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=\overline M^{-1}\;</MATH>}}), a dla współrzędnych kowariantnych bez nadkreslenia jest w postaci: {{Formuła|<MATH>{\Lambda^{\mu}}_{\nu}=\overline M^{-1}\;</MATH>}} (a z nadkreśleniem {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}=\overline M\;</MATH>}}). ==Układy globalnie (lokalnie) płaskie globalnie (lokalnie) spoczynkowe i o globalnie (lokalnie) stałym tensorze (wektorze) prędkości== Z istniejących matematycznie układów globalnie (lokalnie) płaskich globalnie (lokalnie) spoczynkowych, w których zachodzi w postaci einsteinowskiej i newtonowskiej, tzn. o definicjach zgodnych wynikających też z symetrii {{LinkWzór|C1|Przechodniość macierzy transformacji}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\dot{x}^{\mu}}_{,\nu}=0\wedge \dot{x}^{i}=0\wedge \dot{x}^0=1\;</MATH>|R1}}|2={{CentrujWzór|<MATH>{\dot{x}^{s}}_{,\nu}=0\wedge \dot{x}^{s}=0\;</MATH>|R1a}}}} przechodząc do istniejących też matematycznie układów globalnie (lokalnie) płaskich o globalnie (lokalnie) stałym tensorze (wektorze) prędkości, w których zachodzi w postaci einsteinowskiej i newtonowskiej, tzn. o definicjach zgodnych wynikających też z symetrii {{LinkWzór|C1|Przechodniość macierzy transformacji}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\dot{x}^{\mu}}_{,\nu}=0\;</MATH>|R11}}|2={{CentrujWzór|<MATH>{\dot{x}^{s}}_{,\nu}=0\;</MATH>|R1a1}}}} wtedy na podstawie definicji tych pierwszych układów, tzn. o definicji {{LinkWzór|R1}} i {{LinkWzór|R1a}}, mamy kolejno dla postaci einsteinowskiej {{LinkWzór|W.9da}} i mechaniki newtonowskiej {{LinkWzór|W.9da1}} definicję układów tych drugich z teorii transformacji tensorów (wektorów), tzn. o definicji {{LinkWzór|R11}} i {{LinkWzór|R1a1}}, czyli te dwa rodzaje układów są ze sobą zgodne z definicji, ale też możemy transformować między sobą układy globalnie (lokalnie) płaskie o globalnie (lokalnie) stałym tensorze (wektorze) prędkości, tzn. o definicji {{LinkWzór|R11}} i {{LinkWzór|R1a1}}, według tych samych wspomnianych kolejno wzorów, a te układy też są między sobą zgodne z definicji, a więc: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\dot{x}^{\mu}}_{,\nu}={\dot{x}^{\mu}}_{;\nu}={{\dot{\overline x}}^{\alpha}}_{;\beta}{\Lambda^{\mu}}_{\alpha}{\overline{\Lambda}^{\beta}}_{\nu}={{\dot{\overline x}}^{\alpha}}_{,\beta}{\Lambda^{\mu}}_{\alpha}{\overline{\Lambda}^{\beta}}_{\nu}=0\;</MATH>|W.9da}}|2={{CentrujWzór|<MATH>{\dot{x}^{k}}_{,\mu}={\dot{x}^{k}}_{;\mu}={\left({\dot{\overline x}}^{s}-\overline V^s\right)}_{;\nu}{\Lambda^{k}}_{s}{\overline{\Lambda}^{\nu}}_{\mu}={\left({\dot{\overline x}}^{s}-\overline V^s\right)}_{,\nu}{\Lambda^{k}}_{s}{\overline{\Lambda}^{\nu}}_{\mu}=\;</MATH><BR><MATH>={{\dot{\overline x}}^{s}}_{,\nu}{\Lambda^{k}}_{s}{\overline{\Lambda}^{\nu}}_{\mu}-{\overline{V}^{s}}_{,\nu}{\Lambda^{k}}_{s}{\overline{\Lambda}^{\nu}}_{\mu}=0\;</MATH>|W.9da1}}}} W {{LinkWzór|W.9da1}} zakładaliśmy, że nowy układ odniesienia porusza się względem starego z globalnie (lokalnie) stałą prędkością, tzn.: {{CentrujWzór|<MATH>\overline V^s=\overline\operatorname{const}^s\wedge V^s=\operatorname{const}^s\Rightarrow {\overline V^s}_{,\mu}=0\wedge {V^s}_{,\mu}=0\;</MATH>|HG1}} Na podstawie zachodzącej tożsamości globalnej (lokalnej) {{LinkWzór|C1|Przechodniość macierzy transformacji}} uzyskany na podstawie symetrii, mamy kolejno: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>d\dot{x}^{\mu}=0\;</MATH>|W.9d}}|2={{CentrujWzór|<MATH>d\dot{x}^{k}=0\;</MATH>|W.9d1}}}} Ale też zachodzi na podstawie {{LinkWzór|W.9d}} (postać einsteinowska) i {{LinkWzór|W.9d1}} (postać newtonowska) dla kolejno różniczek tensorów położenia {{Formuła|<math>dx^{\nu}\;</MATH>}} i {{Formuła|<MATH>dx^l\;</MATH>}} dowolnych nieskończenie małych, z których można wysnuć kolejno wnioski w układach globalnie (lokalnie) płaskich, tzn.: {{LinkWzór|W.9da}} (globalności (lokalności) stałego tensora prędkości) i {{LinkWzór|W.9da1}} (globalności (lokalności) stałego wektora prędkości), według kolejno przedstawień: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>0=d\dot{x}^{\mu}={{\partial \dot{x}^{\mu}}\over{\partial x^{\nu}}}dx^{\nu}={\dot{x}^{\mu}}_{,\nu}dx^{\nu}\;</MATH>|W.9db}}|2={{CentrujWzór|<MATH>0=d\dot{x}^{k}={{\partial \dot{x}^{k}}\over{\partial x^{\mu}}}dx^{\mu}={\dot{x}^k}_{,\mu}dx^{\mu}={\dot{x}^k}_{,l}dx^{l}+{\dot{x}^k}_{,0}dx^{0}={\dot{x}^k}_{,l}dx^{l}+{\dot{x}^k}_{,0}cdt\;</MATH>|W.9d1b}}}} Z zapisów {{linkWzór|W.9db}} i {{LinkWzór|W.9d1b}} zachodzą kolejno wnioski {{LinkWzór|W.9da}} i {{LinkWzór|W.9da1}}, a także zachodzą z {{LinkWzór|W.9da}} i {{LinkWzór|W.9da1}} wnioski {{linkWzór|W.9db}} i {{LinkWzór|W.9d1b}} przy założeniu istnienia matematycznego układów globalnie (lokalnie) płaskich o globalnie (lokalnie) stałym tensorze (wektorze) prędkości, czyli dowodzi to założenie, że przyśpieszenie jest efektem zakrzywienia czasoprzestrzeni, co jest zgodne z ogólną teorią względności, na podstawie prędkości względem układu odniesienia można wysnuć wniosek, że związek różniczkowy mówiący o zmianie tensora prędkości, wiedząc definicję interwału czasoprzestrzennego {{LinkWzór|1.74a|Tensor metryczny Minkowskiego i jego niezmienniczość interwału czasoprzestrzennego, a stożek światła}} w szczególnej teorii względności i czasu absolutnego w mechanice Newtona, mamy kolejno: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\dot{x}^{\mu}}_{,\beta}=0\Rightarrow {{d\dot{x}^{\mu}}\over{ds}}=0\;</MATH>|P1}}|2={{CentrujWzór|<MATH>{\dot{x}^{k}}_{,l}=0\wedge {\dot{x}^{k}}_{,0}=0\Rightarrow {{d\dot{x}^{k}}\over{dt}}=0\;</MATH>|P11}}}} W układach słabozakrzywionych zachodzi na podstawie {{LinkWzór|P1}} w szczególnej teorii względności i {{LinkWzór|P11}} w mechanice Newtona zastępując przecinek średnikiem, tzn. przechodząc od układów globalnie (lokalnie) płaskich o globalnie (lokalnie) stałym tensorze (wektorze) prędkości do zakrzywionych (w tym przypadku do słabozakrzywionego układu), przy tym ich macierze transformacji kolejno: {{Formuła|<MATH>{\overline{\Lambda}^{\mu}}_{\nu}\;</MATH>}} i {{Formuła|<MATH>{\overline{\Lambda}^{k}}_{l}\;</MATH>}}, mogą być funkcjami uogólnionymi, wtedy mamy kolejno {{LinkWzór|P2}} wychodząc z {{LinkWzór|P1}} (pierwszy wzór) i {{linkWzór|P22}} wychodząc od równania {{LinkWzór|P11}} (pierwszy wzór). ==Równanie geodezyjne ruchu ciała (cząstki materii) w postaci einsteinowskiej== Wyprowadźmy wzór na linię geodezyjną dla zakrzywionej czasoprzestrzeni zaczynając od wzoru {{LinkWzór|P1}} (pierwszy wzór) w postaci einsteinowskiej zamieniając {{Formuła|<MATH>{x}^{\mu}\;</MATH>}} (te zmienne są dla układów globalnie (lokalnie) płaskich) na {{Formuła|<MATH>q^{\mu}\;</MATH>}} (te zmienne są dla układów zakrzywionych), czyli przechodząc z układów globalnie (lokalnie) płaskich o globalnie (lokalnie) stałym tensorze prędkości do zakrzywionych (tutaj rozważamy układy słabozakrzywione jako układy zakrzywione) zakładając, że macierz transformacji {{Formuła|<MATH>{\overline\Lambda^{\mu}}_{\nu}\;</MATH>}} może być funkcją uogólnioną (np.: typu {{LinkWzór|B5|Przechodniość macierzy transformacji}}), że przy tej macierzy transformacji podczas transformacji lewej strony tego wzoru następuje zamiana przecinka na średnik, a prawa strona, która jest zerem, nie zależy od żadnych zmiennych, więc po transformacji przyjmuje wartość zero: {{CentrujWzór|<MATH>{\dot{q}^{\mu}}_{;\beta}=0\Rightarrow{{d\dot{q}^{\mu}}\over{ds}}+{\Gamma^{\mu}}_{\alpha\beta}\dot{q}^{\alpha}\dot{q}^{\beta}=0\Rightarrow{{d\dot{q}^{\mu}}\over{ds}}=-{\Gamma^{\mu}}_{\alpha\beta}\dot{q}^{\alpha}\dot{q}^{\beta}\Rightarrow {{dp^{\mu}}\over{ds}}=K^{\mu}\wedge K^{\mu}=-m_0c{\Gamma^{\mu}}_{\alpha\beta}\dot{q}^{\alpha}\dot{q}^{\beta}=-{\Gamma^{\mu}}_{\alpha\beta}\dot{q}^{\alpha}{p}^{\beta}\;</MATH>|P2}} *gdzie: :{{Formuła|<MATH>\dot{q}^{\mu}=u^{\mu}\;</MATH>}} - to jest tensor prędkości na podstawie {{LinkWzór|P3aa|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, jako pochodna wielkości wskaźnikowej położenia względem interwału czasoprzestrzennego. :{{Formuła|<MATH>p^{\mu}=m_0c\dot q^{\mu}=m_0c u^{\mu}\;</MATH>}} - to jest tensor pędu na podstawie {{LinkWzór|P3a|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, ale przy czym {{Formuła|<MATH>m_0\;</MATH>}} jest to masa spoczynkowa ciała. :{{Formuła|<MATH>K^{\mu}\;</MATH>}} - to jest wielkość wskaźnikowa siły, która dla układów słabozakrzywionych na podstawie {{LinkWzór|P3d|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} jest w przybliżeniu tensorem. :{{Formuła|<MATH>{\Gamma^{\mu}}_{\alpha\beta}\;</MATH>}} - to jest symbol Christoffela, który na podstawie {{LinkWzór|GW1}} dla układów słabozakrzywionych jest w przybliżeniu tensorem. Na podstawie pierwszego równania w {{LinkWzór|P2}} wynika, że układy globalnie (lokalnie) płaskie są o globalnie (lokalnie) stałym tensorze prędkości, bo wtedy symbole Christoffela są równe zero. Te symbole Christoffela w układach słabozakrzywionych są małe i należy wiedzieć kiedy z tymi symbolami pewne wyrazy pominąć. ==Równanie geodezyjne ruchu ciała (cząstki materii) w postaci newtonowskiej== Wyprowadźmy wzór na linię geodezyjną dla zakrzywionej czasoprzestrzeni zaczynając od wzoru {{LinkWzór|P11}} (pierwszy wzór) w konwencji newtonowskiej zamieniając {{Formuła|<MATH>{x}^{\mu}\;</MATH>}} (te zmienne są dla układów globalnie (lokalnie) płaskich) na {{Formuła|<MATH>q^{k}\;</MATH>}} (te zmienne są dla układów zakrzywionych), czyli przechodząc z układów globalnie (lokalnie) płaskich o globalnie (lokalnie) stałym wektorze prędkości do zakrzywionych (tutaj rozważamy układy słabozakrzywione jako układy zakrzywione) zakładając, że macierz transformacji {{Formuła|<MATH>{\overline\Lambda^{k}}_{l}\;</MATH>}} może być funkcją uogólnioną (np.: typu {{LinkWzór|B5|Przechodniość macierzy transformacji}}), że przy tej macierzy transformacji podczas transformacji lewej strony tego wzoru następuje zamiana przecinka na średnik, a prawa strona, która jest zerem, nie zależy od żadnych zmiennych, więc po transformacji przyjmuje wartość zero. Napiszmy równanie geodezyjne mając nowy układ współrzędnych poruszający się względem starego z prędkością {{Formuła|<MATH>\vec V\;</MATH>}}, a więc go tutaj zastosujmy: {{CentrujWzór|<MATH>{\dot{q}^{q}}_{;\mu}=0\wedge {V^{s}}_{;\mu}=0\Rightarrow(\dot{q}^k-V^k)_{;\mu}=0\Rightarrow(\dot{q}^k-V^k)_{,\mu}+{\Gamma^k}_{\mu s}(\dot{q}^s-V^s)=0\Rightarrow(\dot{q}^k-V^k)_{,\mu}(\dot q^{\mu}-V^{\mu})+\;</MATH><BR><MATH>+{\Gamma^k}_{ls}(\dot{q}^s-V^s)(\dot{q}^l-V^l)=0\Rightarrow (\dot{q}^k-V^k)_{,\mu}\dot q^{\mu}-(\dot{q}^k-V^k)_{,\mu}V^{\mu}+{\Gamma^k}_{ls}(\dot{q}^s-V^s)(\dot{q}^l-V^l)=0\Rightarrow {{d}\over{dt}}(\dot{q}^k-V^k)+\;</MATH><BR><MATH>-(\dot{q}^k-V^k)_{,\mu}V^{\mu}+{\Gamma^k}_{ls}(\dot{q}^s-V^s)(\dot{q}^l-V^l)=0\Rightarrow{{d}\over{dt}}(\dot{q}^k-V^k)+{\Gamma^k}_{ls}(\dot{q}^s-V^s)(\dot{q}^l-V^l)-(\dot{q}^k-V^k)_{,\mu}V^{\mu}=0\Rightarrow\;</MATH><BR><MATH>\Rightarrow {{d}\over{dt}}\dot{q}^k=-{\Gamma^k}_{ls}(\dot{q}^s-V^s)(\dot{q}^l-V^l)+{{d}\over{dt}}V^k+(\dot{q}^k-V^k)_{,\mu}V^{\mu}\Rightarrow F^k=m_0{{d}\over{dt}}\dot{q}^k={{dp^k}\over{dt}}\wedge \;</MATH><BR><MATH>\Rightarrow F^k=-m_0{\Gamma^k}_{ls}(\dot{q}^s-V^s)(\dot{q}^l-V^l)+m_0{{d}\over{dt}}V^k+(\dot{q}^k-V^k)_{,\mu}m_0V^{\mu}\;</MATH>|P22}} *gdzie: :{{Formuła|<MATH>\dot{q}^{k}=v^k\;</MATH>}} - to jest wielkość wskaźnikowa prędkości na podstawie {{LinkWzór|P3aa1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, jako pochodna wielkości wskaźnikowej położenia względem czasu absolutnego. :{{Formuła|<MATH>p^{k}=m_0\dot q^{k}=m_0 v^k\;</MATH>}} - to jest wielkość wskaźnikowa pędu na podstawie {{LinkWzór|P3a1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, ale przy czym {{Formuła|<MATH>m_0\;</MATH>}} jest to masa ciała. :{{Formuła|<MATH>F^{k}\;</MATH>}} - to jest wielkość wskaźnikowa siły, która dla układów słabozakrzywionych na podstawie {{LinkWzór|P3da|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} jest w przybliżeniu tensorem. :{{Formuła|<MATH>{\Gamma^{k}}_{sb}\;</MATH>}} - to jest symbol Christoffela, który na podstawie {{LinkWzór|GW12}} dla układów słabozakrzywionych jest w przybliżeniu tensorem. Na podstawie równania po pierwszym wynikaniu w {{LinkWzór|P22}} wynika, że układy globalnie (lokalnie) płaskie są o globalnie (lokalnie) stałym wektorze prędkości na podstawie {{LinkWzór|HG1}} (ostatni wzór), bo wtedy symbole Christoffela są równe zero. Te symbole Christoffela w układach słabozakrzywionych są małe i należy wiedzieć kiedy z tymi symbolami pewne wyrazy pominąć. ==Procedura uniezerowacyjna (nierówność zer) dla równań ruchu w konwencji einsteinowskiej i newtonowskiej== Procedurę {{LinkProcedura|FG}} stosujemy dla układów czasoprzestrzeni, w szczególnej teorii względności i mechaniki Newtona, słabozakrzywionych, ogólnie dynamicznych, według konwencji einsteinowskiej (tu używamy symbole będące wskaźnikami napisane literami greckimi) oraz dla układów słabozakrzywionych w mechanice Newtona według konwencji newtonowskiej statycznych lokalnie czasowo według prędkości (tu używamy symbole będące wskaźnikami napisane literami łacińskimi). {{Procedura|uchwyt=FG|czego=uniezerowacyjna|jakie=(nierówność zer)|tekst=Układami słabozakrzywionymi będziemy uważać w szczególnej teorii względności i mechanice Newtona za układy opisywane jako przejście z układów globalnie (lokalnie) płaskich do układów opisywanych przez macierz {{LinkWzór|CD1}}, a układy słabozakrzywione uważamy za płaskie ogólnie nieprostokątne (one są w przybliżeniu płaskie ogólnie nieprostokątne, ale nie dokładnie), tzn. wybieramy, z nich tylko wyrazy niezwiązane z symbolami Christoffer'a, czyli zastępujemy zerowe {{Formuła|<MATH>{u^{\mu}}_{;\nu}\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{;j}\;</MATH>}}) (bo równanie geodezyjne {{LinkWzór|P2}} (konwencja einsteinowska) i {{LinkWzór|P22}} (konwencja newtonowska)) przez ogólnie niezerowe {{Formuła|<MATH>{u^{\mu}}_{,\nu}\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{,j}\;</MATH>}}), a to w tak przestrzeniach uważanych za płaskie ogólnie nieprostokątne możemy zastąpić {{Formuła|<MATH>{u^{\mu}}_{,\nu}\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{,j}\;</MATH>}}) przez nowe ogólnie niezerowe {{Formuła|<MATH>{u^{\mu}}_{;\nu}\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{;j}\;</MATH>}}) przy zerowych symbolach Christoffela (bo tą czasoprzestrzeń po tej operacji uważamy za płaską ogólnie nieprostokątną), wtedy to ogólnie niezerowe {{Formuła|<MATH>{u^{\mu}}_{;\nu}\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{;j}\;</MATH>}}) transformujemy na układy we współrzędnych uogólnionych (druga zasada Lagrange'a), a w szczególności na układy we współrzędnych krzywoliniowych jako szczególny przypadek zmiennych uogólnionych, jak to jest zawarte wszystko w równaniach Einsteina {{LinkWzór|GG@1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} i Newtona {{LinkWzór|GG@2|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}. A tą procedurę zastosowaliśmy dla tensora prędkości {{Formuła|<MATH>u^{\mu}\;</MATH>}} ({{Formuła|<MATH>u^{i}\;</MATH>}}), ale też '''ona''' się stosuje dla '''innych wielkości tensorowych'''. W tej procedurze tensor metryczny (macierz iloczynu skalarnego przestrzeni zwykłej) układu słabozakrzywionego (jako układu zakrzywionego, nie płaskiego, ale w przybliżeniu płaskiego) zastępujemy przez tensor metryczny Minkowskiego (macierz iloczynu skalarnego przestrzeni zwykłej przetrzeni płaskiej).}} {{Dowód|uchwyt=FG|czego=procedury uniezerowacyjnej|jakie=(nierówności zer)|tekst=Widzimy, że równanie ruchu (pierwszy sposób) na tensor (wektor) siły dla układów słabozakrzywionych uważanych za płaskie ogólnie nieprostokątne (tzn. te układy są w przybliżeniu płaskie ogólnie nieprostokątne) wynikający w tym przypadku z równości na linie geodezyjne w teoriach: mechanika Einsteina i Newtona, w notacji einsteinowskiej {{LinkWzór|P2}} i newtonowskiej {{LinkWzór|P22}} oraz równanie ruchu (drugi sposób) według wzoru na tensor (wektor) siły w tych teoriach kolejno w {{LinkWzór|GG@1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} i {{LinkWzór|GG@2|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, aby względem tych dwóch sposobów równania ruchu były takie same, wynika, że w tym drugim sposobie należy zastosować {{LinkProcedura|FG}}, tzn. należy zastąpić {{Formuła|<MATH>{u^{\mu}}_{;\nu}=0\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{;j}=0\;</MATH>}}) (bo linie geodezyjne) przez {{Formuła|<MATH>{u^{\mu}}_{,\nu}\;</MATH>}} ({{Formuła|<MATH>{u^{i}}_{,j}\;</MATH>}}), czyli zamiast tensora metrycznego {{Formuła|<MATH>g_{\mu\nu}\;</MATH>}} ({{Formuła|<MATH>g_{ij}\;</MATH>}}) wstawiamy tensor metryczny Minkowskiego {{Formuła|<MATH>\eta_{\mu\nu}\;</MATH>}} (macierz iloczynu skalarnego przestrzeni zwykłej przetrzeni płaskiej {{Formuła|<MATH>a_{ij}\;</MATH>}}). A we wzorach w drugiej zasadzie dynamiki Einsteina i Newtona zastępowanie dowolnego tensora metrycznego układu słabozakrzywionego tensorem metrycznym Minkowskiego (macierzą iloczynu skalarnego przestrzeni zwykłej przetrzeni płaskiej) wynika też z tego, że obie strony zależą od zmiennych niezależnych tensora (wektora) położenia, tensora (wektora) prędkości i tensora metrycznego (macierzy iloczynu skalarnego przestrzeni zwykłej), co jest ważne tutaj, by równania pisać w formie tensorowej (wektorowej). A przed zastosowaniem {{LinkProcedura|FG}} mamy, że obie ich strony są równe zero w układach globalnie (lokalnie) płaskich, a w układach słabozakrzywionych ich część kinematyczna jest równa zero, a dynamiczna różna od zera, mimo zastosowania transformacji będących funkcjami uogólnionymi, a po zastosowaniu tej procedury są sobie równe według {{LinkWzór|P2}}. W takim razie, a dlaczego po przetransformowaniu tensora (wektora) siły (część dynamiczna dynamiki ruchu) z układu globalnie (lokalnie) płaskiego do słabozakrzywionego przed zastosowaniem tej procedury nie daje jego wartości ogólnie znów zerowej, tylko ogólnie niezerową, a z naszych rozważań powinna dawać nadal wartość zerową, a po pierwsze funkcja transformacji jest funkcją uogólnioną, a po drugie równania fizyczne zostały pierwotnie przyszykowane dla układów płaskich ogólnie nieprostokątnych, a nie zakrzywionych, a więc równania mechaniki Einsteina i Newtona z tensorem metrycznym Minkowskiego (macierzą iloczynu skalarnego przestrzeni zwykłej przetrzeni płaskiej) opisują układ słabozakrzywiony w sposób przybliżony, a nie dokładny, a mechanika Einsteina i Newtona są teoriami tylko przybliżonymi, bo zakłada się, że szczególna teoria względności są zgodne w układach lokalnie płaskich, a wiadomo, że układy płaskie lokalnie nie istnieją fizycznie (istnieją tylko matematycznie) w szczególnej teorii względności, bo transformacja symboli Christoffer'a z jednego układu słabozakrzywionego do drugiego {{LinkWzór|GW1}}, bo inaczej cała szczególna teoria względności byłaby w sobie sprzeczna, chyba, że założymi, że w układach lokalnie płaskich, w teorii dla układów zakrzywionych tensor (wektor) prędkości jest lokalnie stały, istniejących fizycznie tylko w niej (bo według niej symbole Christoffer'a nie są dokładnie tensorami), wtedy mechanika Einsteina i Newtona są teoriami tylko przybliżonymi. Co kończy dowód tej procedury.}} ===Szczególne przypadki zastosowań procedury uniezerowacyjnej=== Dla układów globalnie (lokalnie) płaskich z przejściem do układów słabozakrzywionych możemy napisać w {{LinkWzór|GGGS}}, w której zastosujemy tą procedurę dla konwencji einsteinowskiej i newtonowskiej kolejno: {{ElastycznyWiersz|{{CentrujWzór|<MATH>{T^{\mu}}_{,\nu}={T^{\mu}_{x^{\gamma}}}_{,\nu}+{T^{\mu}_{u^{\gamma}}}_{,\gamma}{u^{\gamma}}_{,\nu}\Rightarrow{T^{\mu}}_{;\nu}={T^{\mu}_{x^{\gamma}}}_{;\nu}+{T^{\mu}_{u^{\gamma}}}_{;\alpha}{u^{\alpha}}_{;\nu}\;</MATH>|GGGS}}|{{CentrujWzór|<MATH>{T^{i}}_{,j}={T^{i}_{x^{k}}}_{,j}+{T^{i}_{u^{k}}}_{,l}{u^{l}}_{,j}\Rightarrow{T^{i}}_{;j}={T^{i}_{x^{k}}}_{;j}+{T^{i}_{u^{k}}}_{;l}{u^{l}}_{;j}\;</MATH>|GGGS1}}}} Jeżeli stosujemy tą procedurę dla tensora prędkości, to też stosujemy dla innych wielkości tensorowych, tzn. przestrzeń słabozakrzywioną, jeżeli uznajemy za płaską ogólnie nieprostokątną dla tensora prędkości, to też dla innych wielkości tensorowych, stąd to stosujemy dla równości ostatniej {{LinkWzór|GGGS}}, by otrzymać jego pierwotną postać dla układów uważanych za płaskie ogólnie nieprostokątne, by otrzymać pierwsze równanie w {{LinkWzór|GGGS}}. Weźmy równanie ruchu ciała w mechanice Einsteina w polu elektromagnetycznym, pisząc wzór na tensor siły pochodzącej od oddziaływania elektromagnetycznego według {{LinkWzór|26.61|Elektrodynamika relatywistyczna|Elektrodynamika klasyczna|EK}}, łącząc go ze wzorem tensorowym drugiej zasady dynamiki Einsteina {{LinkWzór|BV1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, a to wszystko stosujemy w układach słabozakrzywionych, dalej stosując tą procedurę dla konwencji einsteonowskiej stosując równania Einsteina: {{CentrujWzór|<MATH>m_0c{u^{\mu}}_{;\nu}u^{\nu}=K^{\mu}=-qF^{\mu\nu}u_{\nu}=-qF^{\mu\alpha}g_{\alpha\beta}u^{\beta}\rightarrow m_0c{u^{\mu}}_{,\nu}u^{\nu}=K^{\mu}=-qF^{\mu\nu}u_{\nu}=-qF^{\mu\alpha}\eta_{\alpha\beta}u^{\beta}\;</MATH>|JJJH}} A dalej stosując tą procedurę dla konwencji Newtonowskiej, stosując równania Newtona: {{CentrujWzór|<MATH>m_0{v^{i}}_{;j}v^{j}=F^{i}\Rightarrow m_0{v^{i}}_{,j}v^{j}=F^{i}\Rightarrow m_0{{dv^i}\over{dt}}=F^i\;</MATH>|JJJH1}} Wiedząc jakie jest równanie geodezyjne szczególnej teorii względności (mechaniki Newtona) według {{LinkWzór|P2}} ({{LinkWzór|P2}}) i wzór na tensor (wektor) siły {{LinkWzór|BV1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} ({{LinkWzór|BV2|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}), dochodzimy do wniosku, że prawa i lewa strona równości {{LinkWzór|JJJH}} są równe zero w układach globalnie (lokalnie) płaskich ogólnie nieprostokątnych, a po przejściu do układu słabozakrzywionego są sobie nierówne (bo funkcje transformacji są funkcjami uogólnionymi), a układy słabozakrzywione uważamy za płaskie ogólnie nieprostokątne, co potem stosujemy tą procedurę w układach słabozakrzywionych, dalej obie strony zaczynają być sobie równe. ===Długość wektora, wartość iloczynu skalarnego i różniczka interwału czasoprzestrzennego przed i po zastosowaniu procedury uniezerowacyjnej=== Przed zastosowaniem tej procedury długość danego wektora, wartość danego iloczynu skalarnego i dana różniczka interwału czasoprzestrzennego, w różnych układach słabozakrzywionych i w układach globalnie (lokalnie) płaskich, są takie same na podstawie {{LinkWzór|T1c|Transformacje macierzy transformacji, układy globalnie (lokalnie) płaskie a słabozakrzywione - rozważania ogólne}} (długość wektora), {{LinkWzór|T1b|Transformacje macierzy transformacji, układy globalnie (lokalnie) płaskie a słabozakrzywione - rozważania ogólne}} (iloczyn skalarny) i {{LinkWzór|B11|Tensor metryczny Minkowskiego i jego niezmienniczość interwału czasoprzestrzennego, a stożek światła}} (różniczka interwału czasoprzestrzennego), ale różne po zastosowaniu tej procedury, bo wtedy zmienia się {{Formuła|<MATH>g_{\mu\nu}\;</MATH>}} układu słabozakrzywionego na {{Formuła|<MATH>\eta_{\mu\nu}\;</MATH>}} (tensor Minkowkiego) układu płaskiego podczas stosowania tej procedury. ==Paradoks niespełnienia równania geodezyjnego w układach słabozakrzywionych== Weźmy równanie geodezyjne w postaci tensorowej dla czasoprzestrzeni przy konwencji einsteinowskiej w postaci {{LinkWzór|P2}} (pierwsze równanie) i napiszmy go dla układów globalnie (lokalnie) płaskich: {{CentrujWzór|<MATH>{\dot q^{\mu}_p}_{;\beta}=0\;</MATH>|K11}} Weźmy całkowitą macierz transformacji {{Formuła|<MATH>{\overline \Lambda^{\mu}}_{\nu}\;</MATH>}} w teorii transformacji Lorentza i Galileusza naszego problemu fizycznego, transformujące od układów globalnie (lokalnie) płaskich do układów słabozakrzywionych. Układy słabozakrzywione uważane za płaskie we współrzędnych uogólnionych (w szczególnym przypadku krzywoliniowe), i go rozłóżmy na dwie macierze, jedną przedstawiającą transformację od układu globalnie (lokalnie) płaskiego do słabozakrzywionego uważanego za płaskie ogólnie nieprostokątne {{Formuła|<MATH>{\overline \Lambda^{\mu}_{s}}_{\nu}\;</MATH>}}, a drugą dla transformacji od układu słabozakrzywionego uważanego za płaskie ogólnie nieprostokątne do układu słabozakrzywionego napisane we współrzędnych uogólnionych {{Formuła|<MATH>{\overline \Lambda^{\mu}_{u}}_{\nu}\;</MATH>}} (w szczególnym przypadku krzywoliniowych {{Formuła|<MATH>{\overline \Lambda^{\mu}_k}_{\nu}\;</MATH>}}) będąca dopełnieniem tego pierwszego, wtedy: {{CentrujWzór|<MATH>{\overline \Lambda^{\alpha}}_{\beta}={\overline \Lambda^{\alpha}_{kiu}}_{\mu}{\overline \Lambda^{\mu}_{s}}_{\beta}\;</MATH>|K22}} Macierze występujące w problemie {{LinkWzór|K22}}, tzn. {{Formuła|<MATH>{\overline \Lambda^{\alpha}_{s}}_{\mu}\;</MATH>}} jest to macierz {{linkWzór|CD1}}, a macierz {{Formuła|<MATH>{\overline \Lambda^{\mu}_{kiu}}_{\beta}\;</MATH>}} jest to macierz {{LinkWzór|CD2}} lub {{linkWzór|CD3}}, są przedstawione w: {{ElastycznyWiersz |{{CentrujWzór|<MATH>{\overline \Lambda^{\mu}_{s}}_{\nu}=\begin{bmatrix}\lambda_s&0\\0&\overline \Lambda_{sp}\end{bmatrix}\;</MATH>|CD1}} |{{CentrujWzór|<MATH>{\overline \Lambda^{\mu}_{k}}_{\nu}=\begin{bmatrix}1&0\\0&\overline \Lambda_{k}\end{bmatrix}\;</MATH>|CD2}} |{{CentrujWzór|<MATH>{\overline \Lambda^{\mu}_{u}}_{\nu}=\begin{bmatrix}\overline\Lambda_{u11}&\vec\overline\Lambda_{u12}\\\vec \overline\Lambda_{u21}^T&\overline\Lambda_{u22}\end{bmatrix}\;</MATH>|CD3}} }} Zamiast macierzy kolejno {{Formuła|<MATH>{\overline \Lambda^{\mu}_{k}}_{\nu}\;</MATH>}} w rozważanych problemach fizycznych może być macierz {{Formuła|<MATH>{\overline \Lambda^{\mu}_{u}}_{\nu}</MATH>}}. Weźmy problem transformacji równania {{linkWzór|K11}} przy całkowitej macierzy transformacji {{LinkWzór|K22}}, wtedy: {{CentrujWzór|<MATH>{\dot q^{\alpha}_p}_{;\beta}=0\Rightarrow {\overline \Lambda^{\mu}}_{\alpha}{\dot q^{\alpha}_p}_{;\beta}{\Lambda^{\beta}}_{\nu}={\dot\overline q^{\mu}}_{;\nu}=0\Rightarrow {\overline \Lambda^{\mu}_{kiu}}_{\xi}{\overline \Lambda^{\xi}_{s}}_{\alpha}{\dot q^{\alpha}_p}_{;\beta}{\Lambda^{\gamma}_{kiu}}_{\nu}{\Lambda^{\beta}_{s}}_{\gamma}={\dot\overline q^{\mu}}_{;\nu}=0\wedge \dot \overline q^{\mu}=\dot q^{\nu}_p{\overline{\Lambda}^{\mu}}_{\nu}</MATH>|K3}} W teorii transformacji zwykle nie wiemy jaka jest macierz transformacji od układu globalnie (lokalnie) płaskiego do układu słabozakrzywionego uważanych za płaskie ogólnie nieprostokątne {{Formuła|<MATH>{\overline \Lambda^{\xi}_{s}}_{\alpha}\;</MATH>}}, i tylko wiemy jaka jest za to macierz transformacji z układu płaskiego (w tym przypadku słabozakrzywionego uważanego za płaskie ogólnie nieprostokątne) do układu we współrzędnych uogólnionych (krzywoliniowych) zanurzonych w układach słabozakrzywionych uważane za płaskie ogólnie nieprostokątne, w takim razie równanie geodezyjne nie jest spełnione, a to wyrażenie zaraz poniżej nie jest ogólnie równe zero, jak pokazano poniżej: {{CentrujWzór|<MATH>{\dot q^{\alpha}_p}_{;\beta}\neq 0\Rightarrow {\overline \Lambda^{\mu}_{kiu}}_{\alpha}{\dot q^{\alpha}_p}_{;\beta}{\Lambda^{\beta}_{kiu}}_{\nu}={\dot \overline q^{\mu}_{kiu}}_{;\nu}\neq 0\wedge \dot \overline q^{\mu}=\dot q^{\nu}_p{\overline{\Lambda}^{\mu}_{kiu}}_{\nu}\;</MATH>|K4}} Gdzie {{Formuła|<MATH>\dot q^{\nu}_p\;</MATH>}} jest współrzędną tensora prędkości w układach słabozakrzywionych uważanych za płaskie ogólnie nieprostokątne, a {{Formuła|<MATH>\dot q^{\nu}\;</MATH>}} jest współrzędną tensora prędkości w układach słabozakrzywionych uważanych za układy we współrzędnych krzywoliniowych (uogólnionych). Czyli w układach słabozakrzywionych uważanego za płaskie we współrzęnych nieprostokątnych lub krzywoliniowych (uogólnionych) równanie geodezyjne nie jest spełnione przy założeniu płaskości czasoprzestrzeni, w której jest zanurzony układ krzywoliniowy lub we współrzędnych uogólnionych, ale w rzeczywistości jest spełnione, a dlaczego myślimy, że jest przeciwnie, bo to wynika z nieznajomości macierzy transformacji do układu słabozakrzywionego uważanych za płaskie ogólnie nieprostokątne od układu globalnie (lokalnie) płaskiego {{Formuła|<MATH>{\overline \Lambda^{\mu}_{s}}_{\nu}\;</MATH>}}. ==Czy symbole Christoffela są co najwyżej w przybliżeniu tensorami dla układów słabozakrzywionych i globalnie (lokalnie) płaskich w równaniu geodezyjnym w dwóch postaciach== Będziemy tutaj rozważali przemyślenia dotyczące równań geodezyjnych dla układów słabozakrzywionych i globalnie (lokalnie) płaskich, tzn. dla nich powiemy, kiedy symbole Christoffela są w przybliżeniu tensorowami, a kiedy dokładnie. ===Postać einsteinowska=== Na podstawie przedstawienia w postaci einsteinowskiej równania geodezyjnego ruchu {{LinkWzór|P2}} zakładając, że spełniony jest wzór dla macierzy transformacji {{LinkWzór|P3c|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}: {{CentrujWzór|<MATH>{\overline\Lambda^{\nu}}_{\mu}\ddot{q}^{\mu}+{\overline\Lambda^{\nu}}_{\mu}{\Gamma^{\mu}}_{\alpha\beta}\dot{q}^{\alpha}\dot{q}^{\beta}=0\Rightarrow {{d}\over{ds}}\left({\overline\Lambda^{\nu}}_{\mu}\dot{q}^{\mu}\right)+{\overline\Lambda^{\nu}}_{\mu}{\Gamma^{\mu}}_{\alpha\beta}{\Lambda^{\alpha}}_{\gamma}{\Lambda^{\beta}}_{\omega} {\overline\Lambda^{\gamma}}_{\xi}{\overline\Lambda^{\omega}}_{\zeta}\dot q^{\xi}\dot q^{\zeta}\simeq 0\Rightarrow\ddot{\overline q}^{\nu}+{\overline \Gamma^{\nu}}_{\gamma\omega}\dot{\overline q}^{\gamma}\dot{\overline q}^{\omega}=0\wedge\;</MATH><BR><MATH>\wedge{\overline \Gamma^{\nu}}_{\gamma\omega}\simeq {\overline\Lambda^{\nu}}_{\mu}{\Gamma^{\mu}}_{\alpha\beta}{\Lambda^{\alpha}}_{\gamma}{\Lambda^{\beta}}_{\omega}\;</MATH>|GW1}} Gdy rozważamy w postaci einsteinowskiej układy globalnie (lokalnie) płaskie, wtedy symbole Christoffela są dokładnie tensorami, a w układach słabozakrzywionych tylko w przybliżeniu są tensorami. ===Postać newtonowska z domieszką postaci einsteinowskiej=== Wykorzystamy w postaci newtonowskiej równania geodezyjne, ale też równania transformacyjne w postaci newtonowskiej i einsteinowskiej. Na podstawie przedstawienia w postaci newtonowskiej równania geodezyjnego ruchu {{LinkWzór|P22}} zakładając, że spełniony jest wzór dla macierzy transformacji {{LinkWzór|P3ca|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, {{LinkWzór|P3c1a|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} i {{LinkWzór|P9p1|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} dla układów słabozakrzywionych wykorzystając postać transformacyjną tensora prędkości w postaci einsteinowskiej {{linkWzór|P3aa|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} i tensorowość wielkości {{Formuła|<MATH>v^l-V^l\;</MATH>}}, tzn. {{LinkWzór|H8|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, więc: {{CentrujWzór|<MATH>{\overline\Lambda^{m}}_{n}{{d}\over{dt}}\left(\dot q^n-V^n\right)-{\overline\Lambda^m}_n(\dot{q}^n-V^n)_{,\alpha}{\delta^{\alpha}}_{\gamma}V^{\gamma}+{\overline\Lambda^{n}}_{n}{\Gamma^{n}}_{kl}{\delta^k}_s{\delta^l}_r(\dot{q}^{s}-V^s)(\dot{q}^{r}-V^r)=0\Rightarrow \;</MATH><BR><MATH>\Rightarrow{{d}\over{ds}}\left({\overline\Lambda^{m}}_{n}(\dot{q}^{n}-V^n)\right)-{\overline\Lambda^m}_n(\dot{q}^n-V^n)_{,\alpha}{\Lambda^{\alpha}}_{\beta}{\overline\Lambda^{\beta}}_{\gamma}V^{\gamma}+{\overline\Lambda^{m}}_{n}{\Gamma^{n}}_{kl}{\Lambda^{k}}_{s}{\Lambda^{l}}_{b} {\overline\Lambda^s}_r{\overline\Lambda^b}_{p}(\dot q^{r}-V^r)(\dot q^{p}-V^p)\simeq 0\Rightarrow \;</MATH><BR><MATH>\Rightarrow{{d}\over{dt}}\left(\dot \overline q^m-\overline V^m\right)-(\dot{\overline q}^m-\overline V^m)_{,\mu}\overline V^{\mu}+{\overline\Gamma^{m}}_{sb}(\dot{\overline q}^{s}-\overline V^s)(\dot{\overline q}^{b}-\overline V^b)=0\wedge {\overline \Gamma^{m}}_{sb}\simeq {\overline\Lambda^{m}}_{n}{\Gamma^{n}}_{kl}{\Lambda^{k}}_{s}{\Lambda^{l}}_{b}\;</MATH>|GW12}} Gdy rozważamy w postaci newtonowskiej układy globalnie (lokalnie) płaskie, wtedy symbole Christoffela są dokładnie tensorami, a w układach słabozakrzywionych tylko w przybliżeniu są tensorami. ===Wnioski wynikające z tensorowości nawet przybliżonej symboli Christoffela=== Stąd na podstawie transformacji symboli Christoffela pomiędzy układami słabozakrzywionymi {{LinkWzór|GW1}} w postaci einsteinowskiej i {{LinkWzór|GW12}} w postaci newtonowskiej nie ma fizycznych układów globalnie (lokalnie) płaskich (one są o globalnie (lokalnie) stałym tensorze prędkości, bo zachodzi w tych układach {{LinkWzór|C1|Przechodniość macierzy transformacji}} oraz stąd wynikający {{LinkWzór|P1}} (szczególna teoria wzglęności) i {{LinkWzór|P11}} (mechanika Newtona)), ale one są matematycznie, bo wtedy macierze transformacji do układów słabozakrzywionych od układów globalnie (lokalnie) płaskich są wtedy funkcjami uogólnionymi, a gdyby one nie były takie to w każdym układzie współrzędnych symbole Christoffela byłyby równe zero, a ponieważ dałoby się znależć fizycznie układ globalnie (lokalnie) płaski to cała przestrzeń byłaby globalnie płaska o globalnie stałym tensorze prędkości, a wiemy, że tak nie jest, stąd nie da się ich znaleźć fizycznie, ale matematycznie już tak, a więc w rozważanych tutaj teoriach przestrzeń jest tylko słabozakrzywiona. ==Dowód drugiej zasady dynamiki Newtona-Einsteina z równania geodezyjnego - wersji tensorowej i wektorowej== Na podstawie {{LinkWzór|P2}} (postać einsteinowska) i {{LinkWzór|P22}} (postać newtonowska) dowodu na wzór na wielkość wskaźnikową siły wzór na drugą zasadę dynamiki Newtona i Einsteina na podstawie, że wzór na siłę ma taką samą postać dla wszystkich prędkości, są kolejno {{LinkWzór|P3}} i {{LinkWzór|P3a1a}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>K^{\mu}={{dp^{\mu}}\over{ds}}\Rightarrow \vec F={{d\vec p}\over{dt}}\;</MATH>|P3}}|2={{CentrujWzór|<MATH>F^{k}={{dp^{k}}\over{dt}}\Rightarrow \vec F={{d\vec p}\over{dt}}\;</MATH>|P3a1a}}}} Jak się przekonamy według {{LinkWzór|P3d|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}} i {{LinkWzór|P3da|Tensorowy charakter różniczki położenia oraz tensora siły w mechanine Einsteina i wektora siły w mechanice Newtona}}, że wzory na wielkość wskaźnikową siły kolejno w {{LinkWzór|P3}} i {{LinkWzór|P3a1a}} są w przybliżeniu tensorami, a nie dokładnie, kolejno w postaci einsteinowskiej i newtonowskiej. <noinclude>{{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}</noinclude> <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> 9jhw76nmbor2x57z1pmvh8dx1ofqjyz Unicode/Specjalne 0 48055 438887 334453 2022-08-27T16:19:44Z Persino 2851 wikitext text/x-wiki {{Nagłówek |tytuł=Unicode<br>Specjalne |adnotacje=Tabela znaków [[w:Unicode|Unicode]] z zakresu [[Unicode/FF|FFF0]] - [[Unicode/FF|FFFF]] ('''Specjalne''', [[w:Język angielski|ang.]] Specials)<br>{{Unicode}} }} {{Unicode/Specjalne}} [[Kategoria:Unikod|Specjalne]] 47wjri39sw3c7dceic8yhmc6m5r02j1 438889 438887 2022-08-27T16:22:38Z Persino 2851 Anulowanie wersji 438887 autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) wikitext text/x-wiki {{Nagłówek |tytuł=Unicode<br>Specjalne |adnotacje=Tabela znaków [[w:Unicode|Unicode]] z zakresu [[Unicode/FF|FFF0]] - [[Unicode/FF|FFFF]] ('''Specjalne''', [[w:Język angielski|ang.]] Specials)<br>{{Unicode}} }} {{Unicode/Specjalne}} {{Przypisy}} [[Kategoria:Unikod|Specjalne]] 9eac12xhwz7qm6jms2f12xq4djgqnv4 Szablon:Unicode/Specjalne 10 48056 438871 432398 2022-08-27T13:51:54Z Persino 2851 wikitext text/x-wiki <includeonly>{| class="wikitable" style="width: 100%; text-align: center" |- |style="background: #D9D9F3"|<small>U+FFF0</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF1</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF2</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF3</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF4</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF5</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF6</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF7</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF8</small><br /><big>{{tab}}</big> ||style="background: #C8C8F3"| <small>U+FFF9</small><br /><span style="color:grey;"><big><sup>I</sup></big> A <big><big><big><sub><sub><sub>A</sub></sub></sub></big></big></big></span> ||style="background: #C8C8F3"| <small>U+FFFA</small><br /><span style="color:grey;"><big><sup>I</sup></big> A <big><big><big><sub><sub><sub>S</sub></sub></sub></big></big></big></span> ||style="background: #C8C8F3"| <small>U+FFFB</small><br /><span style="color:grey;"><big><sup>I</sup></big> A <big><big><big><sub><sub><sub>T</sub></sub></sub></big></big></big></span> || <small>U+FFFC</small><br /><big>&#65532;</big> || <small>U+FFFD</small><br /><big>&#65533;</big> ||style="background: #A9A9F3"| <small>U+FFFE</small><br /><big>.<ref name="nie">{{Przypiswiki|nie znaki.}}</ref></big> ||style="background: #A9A9F3"| <small>U+FFFF</small><br /><big>.<ref name="nie">{{Przypiswiki|nie znaki.}}</ref></big> |- |} == Przypisy == {{Przypisy}} </includeonly><noinclude>{{Dokumentacja|Szablon:Unicode/Alfabet Shawa/opis}}</noinclude> 7jpqczfy6u7evn02c55onkwebajnvb1 438885 438871 2022-08-27T16:16:54Z Persino 2851 Anulowanie wersji 438871 autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) wikitext text/x-wiki <includeonly>{| class="wikitable" style="width: 100%; text-align: center" |- |style="background: #D9D9F3"|<small>U+FFF0</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF1</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF2</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF3</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF4</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF5</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF6</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF7</small><br /><big>{{tab}}</big> ||style="background: #D9D9F3"| <small>U+FFF8</small><br /><big>{{tab}}</big> ||style="background: #C8C8F3"| <small>U+FFF9</small><br /><span style="color:grey;"><big><sup>I</sup></big> A <big><big><big><sub><sub><sub>A</sub></sub></sub></big></big></big></span> ||style="background: #C8C8F3"| <small>U+FFFA</small><br /><span style="color:grey;"><big><sup>I</sup></big> A <big><big><big><sub><sub><sub>S</sub></sub></sub></big></big></big></span> ||style="background: #C8C8F3"| <small>U+FFFB</small><br /><span style="color:grey;"><big><sup>I</sup></big> A <big><big><big><sub><sub><sub>T</sub></sub></sub></big></big></big></span> || <small>U+FFFC</small><br /><big>&#65532;</big> || <small>U+FFFD</small><br /><big>&#65533;</big> ||style="background: #A9A9F3"| <small>U+FFFE</small><br /><big>.<ref name="nie">{{Przypiswiki|nie znaki.}}</ref></big> ||style="background: #A9A9F3"| <small>U+FFFF</small><br /><big>.<ref name="nie">{{Przypiswiki|nie znaki.}}</ref></big> |- |}</includeonly><noinclude>{{Dokumentacja|Szablon:Unicode/Alfabet Shawa/opis}}</noinclude> 97s3fu96w486o6vt73elarmqvygvqpg Szablon:Unicode/Alfabet Shawa/opis 10 48140 438870 397360 2022-08-27T13:38:08Z Persino 2851 wikitext text/x-wiki {{Podstrona dokumentacji}} ==Użycie== Użycie na stronach podręcznika {{LinkGłówna|Unicode}}. Szablon jest wykorzystany na stronie: {{LinkGłównaUstęp|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}. ==Porównanie html'owych i rysunkowych znaków {{LinkPediaGłówna|Unikod|unikodu}}== {{OverflowWiersz|<!-- -->{{Tabelka|styl=width:100%|<!-- -->{{Wiersz|{{Komórka|opcje=width="100%"|{{ {{#ifeq:{{SUBPAGENAME}}|opis|Unicode/Alfabet Shawa|{{PAGENAME}}}} }}}}<!-- -->{{Komórka|opcje=width="100%"|<!-- -->{{Plik|plik={{#switch:{{#ifeq:{{SUBPAGENAME}}|opis|Alfabet Shawa|{{SUBPAGENAME}}}} | #default = Przykładowy rysunek.png | Alfabet Shawa = UCB Shavian.png | Arabski = UCB Arabic.png | Bengalski = UCB Bengali.png | Bopomofo = UCB Bopomofo.png | Bugiński = UCB Buginese.png | Buid = UCB Buhid.png | Cyrylica = UCB Cyrillic.png | Dewanagari = UCB Devanagari.png | Dodatek Latin-1 = UCB Latin-1 Supplement.png | Dodatkowe strzałki A = UCB Supplemental Arrows-A.png | Dysk z Fajstos = UCB Phaistos Disc Symbols.png | Elementy blokowe = UCB Block Elements.png | Fenicki = UCB Phoenician.png | Formy liczbowe = UCB Number Forms.png | Formy pionowe = UCB Vertical Forms.png | Formy zgodności CJK = UCB CJK Compatibility Forms.png | Gocki = UCB Gothic.png | Grecki i koptyjski = UCB Greek and Coptic.png | Hanunoo = UCB Hanunoo.png | Hebrajski = UCB Hebrew.png | Heksagramy Yijing = UCB Yijing Hexagram Symbols.png | Hieroglify meroickie = UCB Meroitic Hieroglyphs.png | Imperialny aramejski = UCB Imperial Aramaic.png | Indeksy górne i dolne = UCB Superscripts and Subscripts.png | Indyjskie formy liczbowe = UCB Common Indic Number Forms.png | Kamienie Mahjong = UCB Mahjong Tiles.png | Kanbun = UCB Kanbun.png | Karty do gry = UCB Playing Cards.png | Kayah Li = UCB Kayah Li.png | Kreski CJK = UCB CJK Strokes.png | Licyjski = UCB Lycian.png | Liczby utworzone z prętów do liczenia = UCB Counting Rod Numerals.png | Lidyjski = UCB Lydian.png | Lisu = UCB Lisu.png | Mandejski = UCB Mandaic.png | Manipuri = UCB Meetei Mayek.png | Modyfikujące litery tonów = UCB Modifier Tone Letters.png | N'Ko = UCB NKo.png | Obrazy znaków sterujących = UCB Control Pictures.png | Oddzielone litery modyfikujące = UCB Spacing Modifier Letters.png | Ogamiczny = UCB Ogham.png | Ol Chiki = UCB Ol Chiki.png | Operatory matematyczne = UCB Mathematical Operators.png | Optyczne rozpoznawanie znaków = UCB Optical Character Recognition.png | Ormiański = UCB Armenian.png | Osmanija = UCB Osmanya.png | Phags-Pa = UCB Phags-pa.png | Podstawowy łaciński = UCB Basic Latin.png | Południowoarabski epigraficzny = UCB Old South Arabian.png | Radykały yi = UCB Yi Radicals.png | Rejang = UCB Rejang.png | Rozszerzenia IPA = UCB IPA Extensions.png | Rozszerzenia fonetyczne katakana = UCB Katakana Phonetic Extensions.png | Rozszerzenia wedyjskie = UCB Vedic Extensions.png | Rozszerzenie A dzamo hangyl = UCB Hangul Jamo Extended-A.png | Rozszerzona cyrylica A = UCB Cyrillic Extended-A.png | Rozszerzone bopomofo = UCB Bopomofo Extended.png | Rozszerzone dewanagari = UCB Devanagari Extended.png | Rozszerzony birmański A = UCB Myanmar Extended-A.png | Rozszerzony etiopski A = UCB Ethiopic Extended-A.png | Rozszerzony łaciński A = UCB Latin Extended-A.png | Rozszerzony łaciński B = UCB Latin Extended-B.png | Rozszerzony łaciński C = UCB Latin Extended-C.png | Różne małe formy = UCB Small Form Variants.png | Różne symbole matematyczne A = UCB Miscellaneous Mathematical Symbols-A.png | Samarytański = UCB Samaritan.png | Składające półznaki = UCB Combining Half Marks.png | Składające znaki diakrytyczne = UCB Combining Diacritical Marks.png | Składające znaki diakrytyczne dla symboli = UCB Combining Diacritical Marks for Symbols.png | Specjalne = UCB Specials.png | Staroitalski = UCB Old Italic.png | Staroperski = UCB Old Persian.png | Strzałki = UCB Arrows.png | Sylabariusz cypryjski = UCB Cypriot Syllabary.png | Syloti nagri = UCB Syloti Nagri.png | Symbole i znaki interpunkcyjne CJK = UCB CJK Symbols and Punctuation.png | Symbole khmerskie = UCB Khmer Symbols.png | Symbole liczbowe Rumi = UCB Rumi Numeral Symbols.png | Symbole walut = UCB Currency Symbols.png | Syriacki = UCB Syriac.png | Tagalski = UCB Tagalog.png | Tagbanuwa = UCB Tagbanwa.png | Tai le = UCB Tai Le.png | Thaana = UCB Thaana.png | Ugarycki = UCB Ugaritic.png | Uzupełnienie arabskiego = UCB Arabic Supplement.png | Uzupełnienie cyrylicy = UCB Cyrillic Supplement.png | Uzupełnienie etiopskiego = UCB Ethiopic Supplement.png | Uzupełnienie gruzińskiego = UCB Georgian Supplement.png | Uzupełnienie kany = UCB Kana Supplement.png | Uzupełnienie składających znaków diakrytycznych = UCB Combining Diacritical Marks Supplement.png | Znaki opisu ideograficznego = UCB Ideographic Description Characters.png }} |ramka=mały|pozycja=prawo|rozmiar=600px|opis={{NAZWASUBSTRONY|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}}} }}}}}}}} <includeonly>{{Kategoria|Szablony wyświetlające tabele unikodu}}</includeonly> e1o4gvp1cgevhvvlkrhbkkyu6mk8ix2 438886 438870 2022-08-27T16:17:25Z Persino 2851 wikitext text/x-wiki {{Podstrona dokumentacji}} ==Użycie== Użycie na stronach podręcznika {{LinkGłówna|Unicode}}. Szablon jest wykorzystany na stronie: {{LinkGłównaUstęp|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}. ==Porównanie html'owych i rysunkowych znaków {{LinkPediaGłówna|Unikod|unikodu}}== {{OverflowWiersz|<!-- -->{{Tabelka|styl=width:100%|<!-- -->{{Wiersz|{{Komórka|opcje=width="100%"|{{ {{#ifeq:{{SUBPAGENAME}}|opis|Unicode/Alfabet Shawa|{{PAGENAME}}}} }}}}<!-- -->{{Komórka|opcje=width="100%"|<!-- -->{{Plik|plik={{#switch:{{#ifeq:{{SUBPAGENAME}}|opis|Alfabet Shawa|{{SUBPAGENAME}}}} | #default = Przykładowy rysunek.png | Alfabet Shawa = UCB Shavian.png | Arabski = UCB Arabic.png | Bengalski = UCB Bengali.png | Bopomofo = UCB Bopomofo.png | Bugiński = UCB Buginese.png | Buid = UCB Buhid.png | Cyrylica = UCB Cyrillic.png | Dewanagari = UCB Devanagari.png | Dodatek Latin-1 = UCB Latin-1 Supplement.png | Dodatkowe strzałki A = UCB Supplemental Arrows-A.png | Dysk z Fajstos = UCB Phaistos Disc Symbols.png | Elementy blokowe = UCB Block Elements.png | Fenicki = UCB Phoenician.png | Formy liczbowe = UCB Number Forms.png | Formy pionowe = UCB Vertical Forms.png | Formy zgodności CJK = UCB CJK Compatibility Forms.png | Gocki = UCB Gothic.png | Grecki i koptyjski = UCB Greek and Coptic.png | Hanunoo = UCB Hanunoo.png | Hebrajski = UCB Hebrew.png | Heksagramy Yijing = UCB Yijing Hexagram Symbols.png | Hieroglify meroickie = UCB Meroitic Hieroglyphs.png | Imperialny aramejski = UCB Imperial Aramaic.png | Indeksy górne i dolne = UCB Superscripts and Subscripts.png | Indyjskie formy liczbowe = UCB Common Indic Number Forms.png | Kamienie Mahjong = UCB Mahjong Tiles.png | Kanbun = UCB Kanbun.png | Karty do gry = UCB Playing Cards.png | Kayah Li = UCB Kayah Li.png | Kreski CJK = UCB CJK Strokes.png | Licyjski = UCB Lycian.png | Liczby utworzone z prętów do liczenia = UCB Counting Rod Numerals.png | Lidyjski = UCB Lydian.png | Lisu = UCB Lisu.png | Mandejski = UCB Mandaic.png | Manipuri = UCB Meetei Mayek.png | Modyfikujące litery tonów = UCB Modifier Tone Letters.png | N'Ko = UCB NKo.png | Obrazy znaków sterujących = UCB Control Pictures.png | Oddzielone litery modyfikujące = UCB Spacing Modifier Letters.png | Ogamiczny = UCB Ogham.png | Ol Chiki = UCB Ol Chiki.png | Operatory matematyczne = UCB Mathematical Operators.png | Optyczne rozpoznawanie znaków = UCB Optical Character Recognition.png | Ormiański = UCB Armenian.png | Osmanija = UCB Osmanya.png | Phags-Pa = UCB Phags-pa.png | Podstawowy łaciński = UCB Basic Latin.png | Południowoarabski epigraficzny = UCB Old South Arabian.png | Radykały yi = UCB Yi Radicals.png | Rejang = UCB Rejang.png | Rozszerzenia IPA = UCB IPA Extensions.png | Rozszerzenia fonetyczne katakana = UCB Katakana Phonetic Extensions.png | Rozszerzenia wedyjskie = UCB Vedic Extensions.png | Rozszerzenie A dzamo hangyl = UCB Hangul Jamo Extended-A.png | Rozszerzona cyrylica A = UCB Cyrillic Extended-A.png | Rozszerzone bopomofo = UCB Bopomofo Extended.png | Rozszerzone dewanagari = UCB Devanagari Extended.png | Rozszerzony birmański A = UCB Myanmar Extended-A.png | Rozszerzony etiopski A = UCB Ethiopic Extended-A.png | Rozszerzony łaciński A = UCB Latin Extended-A.png | Rozszerzony łaciński B = UCB Latin Extended-B.png | Rozszerzony łaciński C = UCB Latin Extended-C.png | Różne małe formy = UCB Small Form Variants.png | Różne symbole matematyczne A = UCB Miscellaneous Mathematical Symbols-A.png | Samarytański = UCB Samaritan.png | Składające półznaki = UCB Combining Half Marks.png | Składające znaki diakrytyczne = UCB Combining Diacritical Marks.png | Składające znaki diakrytyczne dla symboli = UCB Combining Diacritical Marks for Symbols.png | Specjalne = UCB Specials.png | Staroitalski = UCB Old Italic.png | Staroperski = UCB Old Persian.png | Strzałki = UCB Arrows.png | Sylabariusz cypryjski = UCB Cypriot Syllabary.png | Syloti nagri = UCB Syloti Nagri.png | Symbole i znaki interpunkcyjne CJK = UCB CJK Symbols and Punctuation.png | Symbole khmerskie = UCB Khmer Symbols.png | Symbole liczbowe Rumi = UCB Rumi Numeral Symbols.png | Symbole walut = UCB Currency Symbols.png | Syriacki = UCB Syriac.png | Tagalski = UCB Tagalog.png | Tagbanuwa = UCB Tagbanwa.png | Tai le = UCB Tai Le.png | Thaana = UCB Thaana.png | Ugarycki = UCB Ugaritic.png | Uzupełnienie arabskiego = UCB Arabic Supplement.png | Uzupełnienie cyrylicy = UCB Cyrillic Supplement.png | Uzupełnienie etiopskiego = UCB Ethiopic Supplement.png | Uzupełnienie gruzińskiego = UCB Georgian Supplement.png | Uzupełnienie kany = UCB Kana Supplement.png | Uzupełnienie składających znaków diakrytycznych = UCB Combining Diacritical Marks Supplement.png | Znaki opisu ideograficznego = UCB Ideographic Description Characters.png }} |ramka=mały|pozycja=prawo|rozmiar=600px|opis={{NAZWASUBSTRONY|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}}} }}}}}}}} == Przypisy == {{Przypisy}} <includeonly>{{Kategoria|Szablony wyświetlające tabele unikodu}}</includeonly> 2zqfu997ualabo2xvr7zs8wgsrr45je 438888 438886 2022-08-27T16:20:32Z Persino 2851 wikitext text/x-wiki {{Podstrona dokumentacji}} ==Użycie== Użycie na stronach podręcznika {{LinkGłówna|Unicode}}. Szablon jest wykorzystany na stronie: {{LinkGłównaUstęp|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}. ==Porównanie html'owych i rysunkowych znaków {{LinkPediaGłówna|Unikod|unikodu}}== {{OverflowWiersz|<!-- -->{{Tabelka|styl=width:100%|<!-- -->{{Wiersz|{{Komórka|opcje=width="100%"|{{ {{#ifeq:{{SUBPAGENAME}}|opis|Unicode/Alfabet Shawa|{{PAGENAME}}}} }}}}<!-- -->{{Komórka|opcje=width="100%"|<!-- -->{{Plik|plik={{#switch:{{#ifeq:{{SUBPAGENAME}}|opis|Alfabet Shawa|{{SUBPAGENAME}}}} | #default = Przykładowy rysunek.png | Alfabet Shawa = UCB Shavian.png | Arabski = UCB Arabic.png | Bengalski = UCB Bengali.png | Bopomofo = UCB Bopomofo.png | Bugiński = UCB Buginese.png | Buid = UCB Buhid.png | Cyrylica = UCB Cyrillic.png | Dewanagari = UCB Devanagari.png | Dodatek Latin-1 = UCB Latin-1 Supplement.png | Dodatkowe strzałki A = UCB Supplemental Arrows-A.png | Dysk z Fajstos = UCB Phaistos Disc Symbols.png | Elementy blokowe = UCB Block Elements.png | Fenicki = UCB Phoenician.png | Formy liczbowe = UCB Number Forms.png | Formy pionowe = UCB Vertical Forms.png | Formy zgodności CJK = UCB CJK Compatibility Forms.png | Gocki = UCB Gothic.png | Grecki i koptyjski = UCB Greek and Coptic.png | Hanunoo = UCB Hanunoo.png | Hebrajski = UCB Hebrew.png | Heksagramy Yijing = UCB Yijing Hexagram Symbols.png | Hieroglify meroickie = UCB Meroitic Hieroglyphs.png | Imperialny aramejski = UCB Imperial Aramaic.png | Indeksy górne i dolne = UCB Superscripts and Subscripts.png | Indyjskie formy liczbowe = UCB Common Indic Number Forms.png | Kamienie Mahjong = UCB Mahjong Tiles.png | Kanbun = UCB Kanbun.png | Karty do gry = UCB Playing Cards.png | Kayah Li = UCB Kayah Li.png | Kreski CJK = UCB CJK Strokes.png | Licyjski = UCB Lycian.png | Liczby utworzone z prętów do liczenia = UCB Counting Rod Numerals.png | Lidyjski = UCB Lydian.png | Lisu = UCB Lisu.png | Mandejski = UCB Mandaic.png | Manipuri = UCB Meetei Mayek.png | Modyfikujące litery tonów = UCB Modifier Tone Letters.png | N'Ko = UCB NKo.png | Obrazy znaków sterujących = UCB Control Pictures.png | Oddzielone litery modyfikujące = UCB Spacing Modifier Letters.png | Ogamiczny = UCB Ogham.png | Ol Chiki = UCB Ol Chiki.png | Operatory matematyczne = UCB Mathematical Operators.png | Optyczne rozpoznawanie znaków = UCB Optical Character Recognition.png | Ormiański = UCB Armenian.png | Osmanija = UCB Osmanya.png | Phags-Pa = UCB Phags-pa.png | Podstawowy łaciński = UCB Basic Latin.png | Południowoarabski epigraficzny = UCB Old South Arabian.png | Radykały yi = UCB Yi Radicals.png | Rejang = UCB Rejang.png | Rozszerzenia IPA = UCB IPA Extensions.png | Rozszerzenia fonetyczne katakana = UCB Katakana Phonetic Extensions.png | Rozszerzenia wedyjskie = UCB Vedic Extensions.png | Rozszerzenie A dzamo hangyl = UCB Hangul Jamo Extended-A.png | Rozszerzona cyrylica A = UCB Cyrillic Extended-A.png | Rozszerzone bopomofo = UCB Bopomofo Extended.png | Rozszerzone dewanagari = UCB Devanagari Extended.png | Rozszerzony birmański A = UCB Myanmar Extended-A.png | Rozszerzony etiopski A = UCB Ethiopic Extended-A.png | Rozszerzony łaciński A = UCB Latin Extended-A.png | Rozszerzony łaciński B = UCB Latin Extended-B.png | Rozszerzony łaciński C = UCB Latin Extended-C.png | Różne małe formy = UCB Small Form Variants.png | Różne symbole matematyczne A = UCB Miscellaneous Mathematical Symbols-A.png | Samarytański = UCB Samaritan.png | Składające półznaki = UCB Combining Half Marks.png | Składające znaki diakrytyczne = UCB Combining Diacritical Marks.png | Składające znaki diakrytyczne dla symboli = UCB Combining Diacritical Marks for Symbols.png | Specjalne = UCB Specials.png | Staroitalski = UCB Old Italic.png | Staroperski = UCB Old Persian.png | Strzałki = UCB Arrows.png | Sylabariusz cypryjski = UCB Cypriot Syllabary.png | Syloti nagri = UCB Syloti Nagri.png | Symbole i znaki interpunkcyjne CJK = UCB CJK Symbols and Punctuation.png | Symbole khmerskie = UCB Khmer Symbols.png | Symbole liczbowe Rumi = UCB Rumi Numeral Symbols.png | Symbole walut = UCB Currency Symbols.png | Syriacki = UCB Syriac.png | Tagalski = UCB Tagalog.png | Tagbanuwa = UCB Tagbanwa.png | Tai le = UCB Tai Le.png | Thaana = UCB Thaana.png | Ugarycki = UCB Ugaritic.png | Uzupełnienie arabskiego = UCB Arabic Supplement.png | Uzupełnienie cyrylicy = UCB Cyrillic Supplement.png | Uzupełnienie etiopskiego = UCB Ethiopic Supplement.png | Uzupełnienie gruzińskiego = UCB Georgian Supplement.png | Uzupełnienie kany = UCB Kana Supplement.png | Uzupełnienie składających znaków diakrytycznych = UCB Combining Diacritical Marks Supplement.png | Znaki opisu ideograficznego = UCB Ideographic Description Characters.png }} |ramka=mały|pozycja=prawo|rozmiar=600px|opis={{NAZWASUBSTRONY|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}}} }}}}}}}} <includeonly>{{Kategoria|Szablony wyświetlające tabele unikodu}}</includeonly> e1o4gvp1cgevhvvlkrhbkkyu6mk8ix2 438890 438888 2022-08-27T16:52:36Z Persino 2851 wikitext text/x-wiki {{Podstrona dokumentacji}} ==Użycie== Użycie na stronach podręcznika {{LinkGłówna|Unicode}}. Szablon jest wykorzystany na stronie: {{LinkGłównaUstęp|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}. ==Porównanie html'owych i rysunkowych znaków {{LinkPediaGłówna|Unikod|unikodu}}== {{OverflowWiersz|<!-- -->{{Tabelka|styl=width:100%|<!-- -->{{Wiersz|{{Komórka|opcje=width="100%"|{{ {{#ifeq:{{SUBPAGENAME}}|opis|Unicode/Alfabet Shawa|{{PAGENAME}}}} }}}}<!-- -->{{Komórka|opcje=width="100%"|<!-- -->{{Plik|plik={{#switch:{{#ifeq:{{SUBPAGENAME}}|opis|Alfabet Shawa|{{SUBPAGENAME}}}} | #default = Przykładowy rysunek.png | Alfabet Shawa = UCB Shavian.png | Arabski = UCB Arabic.png | Bengalski = UCB Bengali.png | Bopomofo = UCB Bopomofo.png | Bugiński = UCB Buginese.png | Buid = UCB Buhid.png | Cyrylica = UCB Cyrillic.png | Dewanagari = UCB Devanagari.png | Dodatek Latin-1 = UCB Latin-1 Supplement.png | Dodatkowe strzałki A = UCB Supplemental Arrows-A.png | Dysk z Fajstos = UCB Phaistos Disc Symbols.png | Elementy blokowe = UCB Block Elements.png | Fenicki = UCB Phoenician.png | Formy liczbowe = UCB Number Forms.png | Formy pionowe = UCB Vertical Forms.png | Formy zgodności CJK = UCB CJK Compatibility Forms.png | Gocki = UCB Gothic.png | Grecki i koptyjski = UCB Greek and Coptic.png | Hanunoo = UCB Hanunoo.png | Hebrajski = UCB Hebrew.png | Heksagramy Yijing = UCB Yijing Hexagram Symbols.png | Hieroglify meroickie = UCB Meroitic Hieroglyphs.png | Imperialny aramejski = UCB Imperial Aramaic.png | Indeksy górne i dolne = UCB Superscripts and Subscripts.png | Indyjskie formy liczbowe = UCB Common Indic Number Forms.png | Kamienie Mahjong = UCB Mahjong Tiles.png | Kanbun = UCB Kanbun.png | Karty do gry = UCB Playing Cards.png | Kayah Li = UCB Kayah Li.png | Kreski CJK = UCB CJK Strokes.png | Licyjski = UCB Lycian.png | Liczby utworzone z prętów do liczenia = UCB Counting Rod Numerals.png | Lidyjski = UCB Lydian.png | Lisu = UCB Lisu.png | Mandejski = UCB Mandaic.png | Manipuri = UCB Meetei Mayek.png | Modyfikujące litery tonów = UCB Modifier Tone Letters.png | N'Ko = UCB NKo.png | Obrazy znaków sterujących = UCB Control Pictures.png | Oddzielone litery modyfikujące = UCB Spacing Modifier Letters.png | Ogamiczny = UCB Ogham.png | Ol Chiki = UCB Ol Chiki.png | Operatory matematyczne = UCB Mathematical Operators.png | Optyczne rozpoznawanie znaków = UCB Optical Character Recognition.png | Ormiański = UCB Armenian.png | Osmanija = UCB Osmanya.png | Phags-Pa = UCB Phags-pa.png | Podstawowy łaciński = UCB Basic Latin.png | Południowoarabski epigraficzny = UCB Old South Arabian.png | Radykały yi = UCB Yi Radicals.png | Rejang = UCB Rejang.png | Rozszerzenia IPA = UCB IPA Extensions.png | Rozszerzenia fonetyczne katakana = UCB Katakana Phonetic Extensions.png | Rozszerzenia wedyjskie = UCB Vedic Extensions.png | Rozszerzenie A dzamo hangyl = UCB Hangul Jamo Extended-A.png | Rozszerzona cyrylica A = UCB Cyrillic Extended-A.png | Rozszerzone bopomofo = UCB Bopomofo Extended.png | Rozszerzone dewanagari = UCB Devanagari Extended.png | Rozszerzony birmański A = UCB Myanmar Extended-A.png | Rozszerzony etiopski A = UCB Ethiopic Extended-A.png | Rozszerzony łaciński A = UCB Latin Extended-A.png | Rozszerzony łaciński B = UCB Latin Extended-B.png | Rozszerzony łaciński C = UCB Latin Extended-C.png | Różne małe formy = UCB Small Form Variants.png | Różne symbole matematyczne A = UCB Miscellaneous Mathematical Symbols-A.png | Samarytański = UCB Samaritan.png | Składające półznaki = UCB Combining Half Marks.png | Składające znaki diakrytyczne = UCB Combining Diacritical Marks.png | Składające znaki diakrytyczne dla symboli = UCB Combining Diacritical Marks for Symbols.png | Specjalne = UCB Specials.png | Staroitalski = UCB Old Italic.png | Staroperski = UCB Old Persian.png | Strzałki = UCB Arrows.png | Sylabariusz cypryjski = UCB Cypriot Syllabary.png | Syloti nagri = UCB Syloti Nagri.png | Symbole i znaki interpunkcyjne CJK = UCB CJK Symbols and Punctuation.png | Symbole khmerskie = UCB Khmer Symbols.png | Symbole liczbowe Rumi = UCB Rumi Numeral Symbols.png | Symbole walut = UCB Currency Symbols.png | Syriacki = UCB Syriac.png | Tagalski = UCB Tagalog.png | Tagbanuwa = UCB Tagbanwa.png | Tai le = UCB Tai Le.png | Thaana = UCB Thaana.png | Ugarycki = UCB Ugaritic.png | Uzupełnienie arabskiego = UCB Arabic Supplement.png | Uzupełnienie cyrylicy = UCB Cyrillic Supplement.png | Uzupełnienie etiopskiego = UCB Ethiopic Supplement.png | Uzupełnienie gruzińskiego = UCB Georgian Supplement.png | Uzupełnienie kany = UCB Kana Supplement.png | Uzupełnienie składających znaków diakrytycznych = UCB Combining Diacritical Marks Supplement.png | Znaki opisu ideograficznego = UCB Ideographic Description Characters.png }} |ramka=mały|pozycja=prawo|rozmiar=600px|opis={{NAZWASUBSTRONY|{{Zastąp|ciąg={{msg:NAZWASTRONY}}|wzór=/opis$|zamień=}}}}}} }}}}}}}} <references/> <includeonly>{{Kategoria|Szablony wyświetlające tabele unikodu}}</includeonly> r46wrbhfg6xcb9mckp54b50g4a54z2g Moduł:StronicowyParser/DalszeFunkcje 828 55009 438874 438832 2022-08-27T14:23:04Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon) powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; 304jf5aph2858xeyr70omce4sbfprtp 438875 438874 2022-08-27T14:48:37Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; s8awii3uhgb7d9hcwf8lyiavq9owr6y 438880 438875 2022-08-27T15:52:21Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; jb0f4iozih35ng7r2wb2rzcbwzxn2ak 438882 438880 2022-08-27T16:03:21Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; mor1wtytcfaf0kitqksm46jx8ditfcu 438883 438882 2022-08-27T16:06:55Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); mw.log(szablon,"TYTAN") return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; 215vdmw3sngohd4f9twvcuoeu2xoss9 438884 438883 2022-08-27T16:09:59Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; if(not tekst_artykulu2)then return szablon;end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; hiopqgt06pbgrpedu1z8ydi79recrmd 438894 438884 2022-08-28T08:16:52Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_modolu..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; if(not tekst_artykulu2)then return szablon;end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; 70i9xxkkykjreqfqq3jztc65qcxkh0d 438897 438894 2022-08-28T09:43:16Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_modolu..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local stronicowyparser_modul=require("Module:StronicowyParser/Potrzebne"); if(mw.ustring.match(nazwa_jednostki,stronicowyparser_modul.OgolnyWzor(nil,"(%a+)")))then return;end; local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; if(not tekst_artykulu2)then return szablon;end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; rmsvzgianizbymspoev20z2evvxt56s 438901 438897 2022-08-28T10:40:00Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_modolu..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if(nazwa_jednostki and not parametry_modul["CzyTakCiąg"](nazwa_jednostki))then return;end; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,stronicowyparser_potrzebne_modul.OgolnyWzor(nil,"(%a+)"))) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,stronicowyparser_potrzebne_modul.OgolnyWzor(nil,"(%a+)"))) )then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local stronicowyparser_modul=require("Module:StronicowyParser/Potrzebne"); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=nazwa_przestrzeni or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; if(not tekst_artykulu2)then return szablon;end; local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu); return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; 6eb2i7iguqrpjdpdw86z7cy3nw4lhsg 438902 438901 2022-08-28T11:09:24Z Persino 2851 Scribunto text/plain local p={}; function p.ZaczynajAnalizowacArtykulyKsiazek(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={}; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={}; self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={}; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={}; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do local wartosc=elementy_w_tablicy_obiekty[1]; self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={}; end; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe") local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](); local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",}; if(ile>0)then local frame=mw.getCurrentFrame(); local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki); local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}}; if(not mw.ustring.match(zastepczy,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.zastepczy=true; local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; else local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,}; if(ile>0)then nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona); nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona); end; end; end; end; local tabela_listy_danych_analizy_ksiazki2={}; local linkobiekt={}; local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt); local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki) local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy; if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then tabela_listy_danych_analizy_ksiazki[element_tablicy]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy]; if(nazwa_obiektu)then if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]; end; if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={}; end; tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]; tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true; end; function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany) local nazwa_modolu; if czy_artukul_korzystany then local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_modolu=nazwa_strony; end; nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil; local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local uzyskany_w_wyniku_parsowania; local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka) local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}"); --local powtorka=0; for wywolanie_naglowek in wywolanie_naglowek_iterator do wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; break; end; powtorka=powtorka+1; end; return powtorka; end; local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu) local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}"); if(jest_naglowkuj_w_tekscie_rozdzialu)then jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu); numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1]; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; else p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or ""); end; end; end; end; for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do numeracja=nil; if(self)then --SzablonNaglowkujWNaglowkuRozdzialu(naglowek) SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu); end; local powtorka=0; local function SzablonyWywolywane(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka); local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon); if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end; return szablon; end; return szablon; end; local function SzablonyWywolywaneOgolny(naglowek) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane); return naglowek; end; naglowek=SzablonyWywolywaneOgolny(naglowek); --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); naglowek=frame:preprocess(naglowek); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1"); naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1"); naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local linki_modul=require("Module:Linki"); local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," "); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}}; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(self)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu; SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy); end; end; end; return tablica_spisu_tresci; end; function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany) local parametry_modul=require("Module:Parametry"); if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end; local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki; local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true); if(not tekst_rozwiniety_calego_artykulu)then return 0;end; ---- local techniczne_modul=require("Module:Techniczne"); local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":") ..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}"; local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}"; local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci) local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil; if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true); if(tekst_rozwiniety_calego_spisu_tresci)then tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci); ---- if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end; tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci; if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end; tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci; tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2; ---- local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2; tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci); end; end; ---- local wyzyskane_wywolanie_szablonu_spis_tresci=""; local tabelalisty2=nil; local licencja_z_autorem=true; local tabela_artykulow=nil; local tabela_licencji_spisu_tresci=nil; local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true); local html_modul=require("Module:Html"); local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}"); local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}"); local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}"); local mikroszablony={ ["{{!}}"]=_1, ["{{!((}}"]=_2, ["{{))!}}"]=_3, }; local mikroszablony_odwrotne={ [_1]="|", [_2]="[[", [_3]="]]", }; local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty"); local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local wyrazenie_regularne="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_modolu..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if(nazwa_jednostki and not parametry_modul["CzyTakCiąg"](nazwa_jednostki))then return;end; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,stronicowyparser_potrzebne_modul.OgolnyWzor(nil,"(%a+)"))) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,stronicowyparser_potrzebne_modul.OgolnyWzor(nil,"(%a+)"))) )then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local stronicowyparser_modul=require("Module:StronicowyParser/Potrzebne"); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=nazwa_przestrzeni or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); local tekst_artykulu2; if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); elseif(zawartosc)then tekst_artykulu2=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; if(not tekst_artykulu2)then return szablon;end; --[[local szablony_magiczne={}; local tekst_szablonu=p.LadujZawartoscStrony(self,nazwa_modolu,nil,false,szablony_magiczne,true); if(not tekst_szablonu)then return tekst_artykulu2;end; tekst_szablonu=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_szablonu); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórPełnejNazwyStrony"](nazwa_modolu).."}})",tekst_szablonu); local nazwy_modul=require("Module:Nazwy"); tekst_artykulu2,_=mw.ustring.gsub(tekst_artykulu2,"({{"..techniczne_modul["WzórNazwyStrony"](nazwy_modul["NAZWASTRONY"](nazwa_modolu)).."}})",tekst_szablonu);]] return tekst_artykulu2; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod,obiekt) if(obiekt=="TEMPLATE")then local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon); return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon); else return szablon; end; end); if(not dokumentacja)then tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu); end; return tekst_artykulu_caly; end; end; end; function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis) local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$"); local uchwyt_strony; local tekst_artykulu; local nazwa_strony_bez_kodow_html; if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony); uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html); tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); if(not czy_istnieje)then if(self and self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0 end; end; return nil; else local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu)); if(czy_nie_istnieje_zawartosc)then return nil; end; end; else return nil; end; if(czy_noinclude)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1"); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->",""); else tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1"); end; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>",""); tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->",""); --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); if(szablony_magiczne)then local nazwy_modul=require("Module:Nazwy"); szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html); end; if(szablony_magiczne)then tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne); local ramka_modul=require("Module:Ramka"); tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu); end; if(not szablon_nie_opis)then if(not dokumentacja)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony); end; end; return tekst_artykulu; end; function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt) if(not czy_artukul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$"))) )then p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki) end; local parametry_modul=require("Module:Parametry"); if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_artykolow; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje; if(uchwyty_i_numeracje)then return 0; end; end; end; end; end; else return nil; end; else return nil; end; if(czy_artukul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu; end; end; local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu) or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu); local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu); if(not czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; -- przydzielanie tablicy if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki]; if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end; if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu]; local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; if(czy_artukul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end; local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do local wartosc=element_w_tablicy_obiekt[1]; tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end; end; local strona; if(czy_artukul_korzystany)then strona=""; else strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "") end; local function InneInformacjePrzebneDoAnalizowanejKsiazki() if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then if((nazwa_przestrzeni)and(nazwa_ksiazki))then local czy_ksiazka_istnieje_w_tablicy=false; local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_ksiazek)then for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do if(nazwa_ksiazki_i==nazwa_ksiazki)then if(tablica_spisu.spis)then czy_ksiazka_istnieje_w_tablicy=true; break; end; end; end; end; if(not czy_ksiazka_istnieje_w_tablicy)then local tabela_wstepnych_informacji; local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki; if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); else normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany); end; if(tabela_wstepnych_informacji==0)then if(czy_artukul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0; else p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki); end; else if(tabela_wstepnych_informacji)then if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then tablica_ksiazki.spis=tabela_wstepnych_informacji[1]; tablica_ksiazki.licencja=tabela_wstepnych_informacji[2]; else if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={}; end; if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={}; end; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1]; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2]; end; if(not tabela_wstepnych_informacji[1])then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0; end; end; end; else tablica_ksiazki.spis=tabela_wstepnych_informacji; end; else if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; else p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki); end; end; end; end; end; end; end; function StronaZbiorcza() if(czy_artukul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil); end; return nil; end; InneInformacjePrzebneDoAnalizowanejKsiazki(); local strona_zbiorcza=StronaZbiorcza(); if(strona_zbiorcza)then if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie) and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1]) if(pelny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst); else local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2]) if(wzgledny)then tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst); end; end; end; end; if(czy_artukul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local toc; if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artukul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; return; elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then analiza_stron_korzystanych_zbiorczych=true; return; end; end; end; local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$"); local linkobiekt2; local link; if(czy_wypowiedzenie)then linkobiekt2=false; link=false; else linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$"); if(linkobiekt2)then link=true; else link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink"); end; end; local czy_obsluzone=true; local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty) local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[2])then if(type(elementy_w_tablicy_obiekty[2])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[2])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); end; end; end; return czy_aliasy; end; for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do local wartosc_elementu=elementy_w_tablicy_obiekty[1]; if(not link)then if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty); if(czy_aliasy)then if((not czy_wypowiedzenie) or((czy_wypowiedzenie)and( (tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu) )) )then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]); czy_obsluzone=false; if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; break; end; end; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; elseif(czy_artukul_korzystany)then if(link)then local funkcja_aliasow_2=function(zmienna) if(wartosc_elementu~=zmienna)then return false;end; local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu; local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$"); local szablon; if(not czy_aliasy)then if(elementy_w_tablicy_obiekty[3])then if(type(elementy_w_tablicy_obiekty[3])=="table")then for _,alias in pairs(elementy_w_tablicy_obiekty[3])do local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=alias break; end; end; else local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$"); if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end; end; end; else szablon="Link"..wartosc_elementu; end; return czy_aliasy,szablon; end; if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then local typ=mw.getContentLanguage():lcfirst(wartosc_elementu); local alias,szablon=funkcja_aliasow_2(wartosc_elementu); if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; czy_obsluzone=false; break; end; else local alias,szablon=funkcja_aliasow_2("Śródtytuł"); if(alias)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; czy_obsluzone=false; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; break; end; end; end; end; end; if(czy_obsluzone)then if(czy_wypowiedzenie)then p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]); if(czy_artukul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; elseif(czy_artukul_korzystany)then if(linkobiekt2)then p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"]; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; else for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; end; for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end) if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu); end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2; if(czy_artukul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu); mw.log('To jest strona zbiorcza.') end; if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany); mw.log("Liczę spis treści artykułów korzystanych."); end; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki]; end; tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do local czy_uchwyty_nie_sa_ponumerowane=true; for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then czy_uchwyty_nie_sa_ponumerowane=false; break; end; end; end; if(czy_uchwyty_nie_sa_ponumerowane)then local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$"); if(czy_tylko_ze_znakami_odstepu_lub_puste)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0; end; return; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0; return; end; end; end; end; end; function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do local element_obiekty=element_w_podtablicy_kategorii_bledow[1]; tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja); end; end; function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2) local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do local prosto=true; if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni) and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then prosto=false; end; end; if(prosto)then local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki); for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do local biezacy_artykul=dane_artykulu.artykul_biezacy; local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false; if(nazwa_ksiazki)then if(nazwa_artykulu=="")then czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false; else local tab_ksiazki=tablica_nazw_artykulow.spis; if(tab_ksiazki)then for _,tab_rozdzialu in pairs(tab_ksiazki)do if(tab_rozdzialu[2])then for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do if(nazwa_artykulu1[1]~=nazwa_artykulu)then numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1; else czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break; end; end; end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end; end; end; end; local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu) p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki); end; if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami); elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; else p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami); end; end; end; end; end; for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do local obiekt2=obiekt[1]; p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2); end; return tabela_listy_danych_analizy_ksiazki; end; function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja) local parametry_modul=require("Module:Parametry"); local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu]; if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then return tabela_listy_danych_analizy_ksiazki; end; for licznik,element_obiektu in pairs(tabela_obiektu)do local czy_numerowac=true; for licznik2=1, licznik-1,1 do if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then if(biezacy_artykul)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0; end; else __Funkcja(nazwa_obiektu); end; tabela_obiektu[licznik2][1]=nil; czy_numerowac=false; end; end; if(czy_numerowac)then if(numer_artykulu_w_ksiazce>0)then element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik; elseif(numer_artykulu_w_ksiazce==0)then element_obiektu[2]=licznik elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0 end; end; end; return tabela_listy_danych_analizy_ksiazki; end; return p; 6i6bgykfypt0etqmvtnyp4g0dsvilsh Kategoria:Szablon określenie do sprawdzenia 14 55323 438924 390938 2022-08-28T11:28:54Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon zdefiniuj do sprawdzenia]] na [[Kategoria:Szablon określenie do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony wypowiedzeń do sprawdzenia]] ga07tqy8y9i5i1rxdq2j9gcoyedk2dq Kategoria:Szablon praktyka do sprawdzenia 14 55325 438913 390949 2022-08-28T11:24:37Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon przećwicz do sprawdzenia]] na [[Kategoria:Szablon praktyka do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony wypowiedzeń do sprawdzenia]] ga07tqy8y9i5i1rxdq2j9gcoyedk2dq Kategoria:Szablon określenie (artykuły) do sprawdzenia 14 55328 438915 390940 2022-08-28T11:25:31Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon zdefiniuj (artykuły) do sprawdzenia]] na [[Kategoria:Szablon określenie (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon zdefiniuj do sprawdzenia]] f1uoipnr0gf162rujroh4p8bvdag9lz 438920 438915 2022-08-28T11:27:29Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon określenie do sprawdzenia]] rq68e9s5t04akrcks7l2qabv0ddyuxf Kategoria:Szablon określenie (artykuły dla dzieci) do sprawdzenia 14 55329 438914 390939 2022-08-28T11:25:07Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon zdefiniuj (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon określenie (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon zdefiniuj do sprawdzenia]] f1uoipnr0gf162rujroh4p8bvdag9lz 438919 438914 2022-08-28T11:27:03Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon określenie do sprawdzenia]] rq68e9s5t04akrcks7l2qabv0ddyuxf Kategoria:Szablon określenie (strony użytkowników) do sprawdzenia 14 55330 438918 390943 2022-08-28T11:26:45Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon zdefiniuj (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon określenie (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon zdefiniuj do sprawdzenia]] f1uoipnr0gf162rujroh4p8bvdag9lz 438923 438918 2022-08-28T11:28:32Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon określenie do sprawdzenia]] rq68e9s5t04akrcks7l2qabv0ddyuxf Kategoria:Szablon określenie (strony brudnopisu projektu) do sprawdzenia 14 55331 438916 390941 2022-08-28T11:25:53Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon zdefiniuj (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon określenie (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon zdefiniuj do sprawdzenia]] f1uoipnr0gf162rujroh4p8bvdag9lz 438921 438916 2022-08-28T11:27:51Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon określenie do sprawdzenia]] rq68e9s5t04akrcks7l2qabv0ddyuxf Kategoria:Szablon praktyka (artykuły) do sprawdzenia 14 55373 438904 390951 2022-08-28T11:21:28Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon przećwicz (artykuły) do sprawdzenia]] na [[Kategoria:Szablon praktyka (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon przećwicz do sprawdzenia]] 7zubsqmd5fz2p1gmrg337nw0ervfrd3 438909 438904 2022-08-28T11:23:17Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon praktyka do sprawdzenia]] a0naz07qk5j8pkyqo6ycq8sk7w3f8pc Kategoria:Szablon praktyka (artykuły dla dzieci) do sprawdzenia 14 55374 438903 390950 2022-08-28T11:21:06Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon przećwicz (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon praktyka (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon przećwicz do sprawdzenia]] 7zubsqmd5fz2p1gmrg337nw0ervfrd3 438908 438903 2022-08-28T11:22:58Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon praktyka do sprawdzenia]] a0naz07qk5j8pkyqo6ycq8sk7w3f8pc Kategoria:Szablon praktyka (strony brudnopisu projektu) do sprawdzenia 14 55375 438905 390952 2022-08-28T11:21:53Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon przećwicz (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon praktyka (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon przećwicz do sprawdzenia]] 7zubsqmd5fz2p1gmrg337nw0ervfrd3 438910 438905 2022-08-28T11:23:36Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon praktyka do sprawdzenia]] a0naz07qk5j8pkyqo6ycq8sk7w3f8pc Kategoria:Szablon praktyka (strony użytkowników) do sprawdzenia 14 55376 438907 390954 2022-08-28T11:22:41Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon przećwicz (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon praktyka (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon przećwicz do sprawdzenia]] 7zubsqmd5fz2p1gmrg337nw0ervfrd3 438912 438907 2022-08-28T11:24:15Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon praktyka do sprawdzenia]] a0naz07qk5j8pkyqo6ycq8sk7w3f8pc Kategoria:Szablon określenie (strony niepodręcznikowe) do sprawdzenia 14 55753 438917 390942 2022-08-28T11:26:18Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon zdefiniuj (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon określenie (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon zdefiniuj do sprawdzenia]] f1uoipnr0gf162rujroh4p8bvdag9lz 438922 438917 2022-08-28T11:28:13Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon określenie do sprawdzenia]] rq68e9s5t04akrcks7l2qabv0ddyuxf Kategoria:Szablon praktyka (strony niepodręcznikowe) do sprawdzenia 14 55764 438906 390953 2022-08-28T11:22:16Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon przećwicz (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon praktyka (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon przećwicz do sprawdzenia]] 7zubsqmd5fz2p1gmrg337nw0ervfrd3 438911 438906 2022-08-28T11:23:57Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon praktyka do sprawdzenia]] a0naz07qk5j8pkyqo6ycq8sk7w3f8pc Kategoria:Szablon LinkOkreślenie do sprawdzenia 14 55786 438979 390971 2022-08-28T11:55:28Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkZdefiniuj do sprawdzenia]] na [[Kategoria:Szablon LinkOkreślenie do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony linków nazwanych do sprawdzenia]] anmkh420ut57iy1z9fk9z2d2gq117ji Kategoria:Szablon LinkPraktyka do sprawdzenia 14 55788 438968 390960 2022-08-28T11:51:03Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkPrzećwicz do sprawdzenia]] na [[Kategoria:Szablon LinkPraktyka do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony linków nazwanych do sprawdzenia]] anmkh420ut57iy1z9fk9z2d2gq117ji Kategoria:Szablon LinkOkreślenie (artykuły) do sprawdzenia 14 55791 438970 390973 2022-08-28T11:52:10Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkZdefiniuj (artykuły) do sprawdzenia]] na [[Kategoria:Szablon LinkOkreślenie (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkZdefiniuj do sprawdzenia]] qeje4r4m49iunczn7ur7hwjjk1bp51b 438975 438970 2022-08-28T11:53:57Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkOkreślenie do sprawdzenia]] s1r9fhj6umegegt1zwwd8tknw801k48 Kategoria:Szablon LinkOkreślenie (artykuły dla dzieci) do sprawdzenia 14 55792 438969 390972 2022-08-28T11:51:47Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkZdefiniuj (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon LinkOkreślenie (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkZdefiniuj do sprawdzenia]] qeje4r4m49iunczn7ur7hwjjk1bp51b 438974 438969 2022-08-28T11:53:36Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkOkreślenie do sprawdzenia]] s1r9fhj6umegegt1zwwd8tknw801k48 Kategoria:Szablon LinkOkreślenie (strony użytkowników) do sprawdzenia 14 55793 438973 390976 2022-08-28T11:53:20Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkZdefiniuj (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon LinkOkreślenie (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkZdefiniuj do sprawdzenia]] qeje4r4m49iunczn7ur7hwjjk1bp51b 438978 438973 2022-08-28T11:55:02Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkOkreślenie do sprawdzenia]] s1r9fhj6umegegt1zwwd8tknw801k48 Kategoria:Szablon LinkOkreślenie (strony brudnopisu projektu) do sprawdzenia 14 55794 438971 390974 2022-08-28T11:52:32Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkZdefiniuj (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon LinkOkreślenie (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkZdefiniuj do sprawdzenia]] qeje4r4m49iunczn7ur7hwjjk1bp51b 438976 438971 2022-08-28T11:54:17Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkOkreślenie do sprawdzenia]] s1r9fhj6umegegt1zwwd8tknw801k48 Kategoria:Szablon LinkOkreślenie (strony niepodręcznikowe) do sprawdzenia 14 55795 438972 390975 2022-08-28T11:52:51Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkZdefiniuj (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon LinkOkreślenie (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkZdefiniuj do sprawdzenia]] qeje4r4m49iunczn7ur7hwjjk1bp51b 438977 438972 2022-08-28T11:54:38Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkOkreślenie do sprawdzenia]] s1r9fhj6umegegt1zwwd8tknw801k48 Kategoria:Szablon LinkPraktyka (artykuły) do sprawdzenia 14 55846 438959 390962 2022-08-28T11:47:55Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkPrzećwicz (artykuły) do sprawdzenia]] na [[Kategoria:Szablon LinkPraktyka (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkPrzećwicz do sprawdzenia]] 4i8k0upoa9woyefx4em76eu2zy8dcii 438964 438959 2022-08-28T11:49:40Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkPraktyka do sprawdzenia]] 68boq14ezefjntrt9s2az04s69j2a3k Kategoria:Szablon LinkPraktyka (artykuły dla dzieci) do sprawdzenia 14 55847 438958 390961 2022-08-28T11:47:29Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkPrzećwicz (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon LinkPraktyka (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkPrzećwicz do sprawdzenia]] 4i8k0upoa9woyefx4em76eu2zy8dcii 438963 438958 2022-08-28T11:49:19Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkPraktyka do sprawdzenia]] 68boq14ezefjntrt9s2az04s69j2a3k Kategoria:Szablon LinkPraktyka (strony użytkowników) do sprawdzenia 14 55848 438962 390965 2022-08-28T11:48:58Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkPrzećwicz (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon LinkPraktyka (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkPrzećwicz do sprawdzenia]] 4i8k0upoa9woyefx4em76eu2zy8dcii 438967 438962 2022-08-28T11:50:39Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkPraktyka do sprawdzenia]] 68boq14ezefjntrt9s2az04s69j2a3k Kategoria:Szablon LinkPraktyka (strony brudnopisu projektu) do sprawdzenia 14 55849 438960 390963 2022-08-28T11:48:15Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkPrzećwicz (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon LinkPraktyka (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkPrzećwicz do sprawdzenia]] 4i8k0upoa9woyefx4em76eu2zy8dcii 438965 438960 2022-08-28T11:50:00Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkPraktyka do sprawdzenia]] 68boq14ezefjntrt9s2az04s69j2a3k Kategoria:Szablon LinkPraktyka (strony niepodręcznikowe) do sprawdzenia 14 55850 438961 390964 2022-08-28T11:48:35Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkPrzećwicz (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon LinkPraktyka (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkPrzećwicz do sprawdzenia]] 4i8k0upoa9woyefx4em76eu2zy8dcii 438966 438961 2022-08-28T11:50:23Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkPraktyka do sprawdzenia]] 68boq14ezefjntrt9s2az04s69j2a3k Kategoria:Szablon śródtytuł do sprawdzenia 14 55852 438957 391733 2022-08-28T11:45:28Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon nagłówkuj do sprawdzenia]] na [[Kategoria:Szablon śródtytuł do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony nagłówków do sprawdzenia]] j9zxzjk1vd36tjpjm03duong46jo4dd Kategoria:Szablon śródtytuł (artykuły) do sprawdzenia 14 55853 438951 391735 2022-08-28T11:43:05Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon nagłówkuj (artykuły) do sprawdzenia]] na [[Kategoria:Szablon śródtytuł (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon nagłówkuj do sprawdzenia]] bkkqhbo6iiokns6w2ap5m18xyorvf9b 438953 438951 2022-08-28T11:43:58Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon śródtytuł do sprawdzenia]] mq35dfbmfqfnkqtyu38j27ucscni9x3 Kategoria:Szablon śródtytuł (artykuły dla dzieci) do sprawdzenia 14 55854 438947 391734 2022-08-28T11:41:37Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon nagłówkuj (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon śródtytuł (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon nagłówkuj do sprawdzenia]] bkkqhbo6iiokns6w2ap5m18xyorvf9b 438952 438947 2022-08-28T11:43:37Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon śródtytuł do sprawdzenia]] mq35dfbmfqfnkqtyu38j27ucscni9x3 Kategoria:Szablon śródtytuł (strony użytkowników) do sprawdzenia 14 55855 438948 391738 2022-08-28T11:41:59Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon nagłówkuj (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon śródtytuł (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon nagłówkuj do sprawdzenia]] bkkqhbo6iiokns6w2ap5m18xyorvf9b 438956 438948 2022-08-28T11:44:58Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon śródtytuł do sprawdzenia]] mq35dfbmfqfnkqtyu38j27ucscni9x3 Kategoria:Szablon śródtytuł (strony brudnopisu projektu) do sprawdzenia 14 55856 438950 391736 2022-08-28T11:42:47Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon nagłówkuj (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon śródtytuł (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon nagłówkuj do sprawdzenia]] bkkqhbo6iiokns6w2ap5m18xyorvf9b 438954 438950 2022-08-28T11:44:20Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon śródtytuł do sprawdzenia]] mq35dfbmfqfnkqtyu38j27ucscni9x3 Kategoria:Szablon śródtytuł (strony niepodręcznikowe) do sprawdzenia 14 55857 438949 391737 2022-08-28T11:42:23Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon nagłówkuj (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon śródtytuł (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon nagłówkuj do sprawdzenia]] bkkqhbo6iiokns6w2ap5m18xyorvf9b 438955 438949 2022-08-28T11:44:37Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon śródtytuł do sprawdzenia]] mq35dfbmfqfnkqtyu38j27ucscni9x3 Kategoria:Szablon LinkŚródtytuł do sprawdzenia 14 55859 438935 391744 2022-08-28T11:35:24Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkuj do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytuł do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony linków, do nagłówków, do sprawdzenia]] d0tu67o0174xaho2f0hh989um76bplo Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia 14 55860 438946 391755 2022-08-28T11:39:58Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkujTutaj do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablony linków, do nagłówków, do sprawdzenia]] d0tu67o0174xaho2f0hh989um76bplo Kategoria:Szablon LinkŚródtytuł (artykuły) do sprawdzenia 14 55861 438929 391745 2022-08-28T11:33:20Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkuj (artykuły) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytuł (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkuj do sprawdzenia]] aaahpr8cbmzbvr65vx8i2bkulgp14xa 438931 438929 2022-08-28T11:34:03Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytuł do sprawdzenia]] 4dsaaj6bhay46cabd5atzta3y0llygu Kategoria:Szablon LinkŚródtytuł (artykuły dla dzieci) do sprawdzenia 14 55862 438925 391746 2022-08-28T11:31:49Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkuj (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytuł (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkuj do sprawdzenia]] aaahpr8cbmzbvr65vx8i2bkulgp14xa 438930 438925 2022-08-28T11:33:40Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytuł do sprawdzenia]] 4dsaaj6bhay46cabd5atzta3y0llygu Kategoria:Szablon LinkŚródtytuł (strony użytkowników) do sprawdzenia 14 55863 438926 391749 2022-08-28T11:32:18Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkuj (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytuł (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkuj do sprawdzenia]] aaahpr8cbmzbvr65vx8i2bkulgp14xa 438934 438926 2022-08-28T11:35:03Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytuł do sprawdzenia]] 4dsaaj6bhay46cabd5atzta3y0llygu Kategoria:Szablon LinkŚródtytuł (strony brudnopisu projektu) do sprawdzenia 14 55864 438928 391747 2022-08-28T11:32:59Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkuj (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytuł (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkuj do sprawdzenia]] aaahpr8cbmzbvr65vx8i2bkulgp14xa 438932 438928 2022-08-28T11:34:24Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytuł do sprawdzenia]] 4dsaaj6bhay46cabd5atzta3y0llygu Kategoria:Szablon LinkŚródtytuł (strony niepodręcznikowe) do sprawdzenia 14 55865 438927 391748 2022-08-28T11:32:38Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkuj (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytuł (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkuj do sprawdzenia]] aaahpr8cbmzbvr65vx8i2bkulgp14xa 438933 438927 2022-08-28T11:34:40Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytuł do sprawdzenia]] 4dsaaj6bhay46cabd5atzta3y0llygu Kategoria:Szablon LinkŚródtytułTutaj (artykuły) do sprawdzenia 14 55866 438940 391757 2022-08-28T11:37:35Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkujTutaj (artykuły) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytułTutaj (artykuły) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkujTutaj do sprawdzenia]] pdotb8aqjyofldomgctr3i436zo606n 438942 438940 2022-08-28T11:38:21Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia]] 9bwjwpntmu2f103gqsl8d3id2vp9xnx Kategoria:Szablon LinkŚródtytułTutaj (artykuły dla dzieci) do sprawdzenia 14 55867 438936 391756 2022-08-28T11:36:12Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkujTutaj (artykuły dla dzieci) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytułTutaj (artykuły dla dzieci) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkujTutaj do sprawdzenia]] pdotb8aqjyofldomgctr3i436zo606n 438941 438936 2022-08-28T11:38:04Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia]] 9bwjwpntmu2f103gqsl8d3id2vp9xnx Kategoria:Szablon LinkŚródtytułTutaj (strony użytkowników) do sprawdzenia 14 55868 438937 391760 2022-08-28T11:36:32Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkujTutaj (strony użytkowników) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytułTutaj (strony użytkowników) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkujTutaj do sprawdzenia]] pdotb8aqjyofldomgctr3i436zo606n 438945 438937 2022-08-28T11:39:30Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia]] 9bwjwpntmu2f103gqsl8d3id2vp9xnx Kategoria:Szablon LinkŚródtytułTutaj (strony brudnopisu projektu) do sprawdzenia 14 55869 438939 391758 2022-08-28T11:37:12Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkujTutaj (strony brudnopisu projektu) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytułTutaj (strony brudnopisu projektu) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkujTutaj do sprawdzenia]] pdotb8aqjyofldomgctr3i436zo606n 438943 438939 2022-08-28T11:38:46Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia]] 9bwjwpntmu2f103gqsl8d3id2vp9xnx Kategoria:Szablon LinkŚródtytułTutaj (strony niepodręcznikowe) do sprawdzenia 14 55870 438938 391759 2022-08-28T11:36:52Z Persino 2851 Persino przeniósł stronę [[Kategoria:Szablon LinkNagłówkujTutaj (strony niepodręcznikowe) do sprawdzenia]] na [[Kategoria:Szablon LinkŚródtytułTutaj (strony niepodręcznikowe) do sprawdzenia]], bez pozostawienia przekierowania pod starym tytułem wikitext text/x-wiki [[Kategoria:Szablon LinkNagłówkujTutaj do sprawdzenia]] pdotb8aqjyofldomgctr3i436zo606n 438944 438938 2022-08-28T11:39:10Z Persino 2851 wikitext text/x-wiki [[Kategoria:Szablon LinkŚródtytułTutaj do sprawdzenia]] 9bwjwpntmu2f103gqsl8d3id2vp9xnx Moduł:Techniczne 828 56417 438876 438686 2022-08-27T15:17:25Z Persino 2851 Scribunto text/plain local p={}; p["ParsujWywołanieSzablonu"] = function(wywolanie_szablonu) local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^{}|]-}}$"); if(not wywolanie_bez_parametrow)then local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*|.-}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"{{[^{}|]*|([^{}]*)}}"); return ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu); else return nil;end; else local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); return parametry_szablonu; else return nil;end; end; end; function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu) local kawalek_wywolania,dalszy_kawalek_wywolania=mw.ustring.match(parametry_wywolania_szablonu,"^([^|]*)|(.*)$"); if(not kawalek_wywolania)then kawalek_wywolania=parametry_wywolania_szablonu; end; if(not dalszy_kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu); end; return nil; end; function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*$"); if(kawalek_wywolania_element_nienazwany)then tworzona_tabela[#tworzona_tabela+1]=mw.text.trim(kawalek_wywolania_element_nienazwany); return tworzona_tabela; else local kawalek_wywolania_klucz,kawalek_wywolania_wartosc=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*=%s*([^|{}]-)%s*$"); if((kawalek_wywolania_klucz)and(kawalek_wywolania_wartosc))then if(not mw.ustring.match(kawalek_wywolania_klucz,"^%s*%d+%s*$"))then tworzona_tabela[mw.text.trim(kawalek_wywolania_klucz)]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; else tworzona_tabela[tonumber(mw.text.trim(kawalek_wywolania_klucz))]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; end; else return nil; end; end; return nil; end; p["PokażSzablon"]=function(szablon, args) local result = {} local flags = {} table.insert(result, mw.text.nowiki("{{")) if mw.isSubsting() then table.insert(result, "subst:") end table.insert(result, szablon); if args then for k, v in pairs(args) do if (type(k)~="number")then table.insert(result, "|") table.insert(result, tostring(k)) table.insert(result, "=") table.insert(result, mw.text.nowiki(v)) else table.insert(result, "|") table.insert(result, mw.text.nowiki(v)) end end end table.insert(result, mw.text.nowiki("}}")) return table.concat(result) end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa,_=PobierzParametr(); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np") if(nazwa_przestrzeni==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa); elseif(nazwa_przestrzeni==nazwy_np_modul.Main)then return ":"..nazwa; else return nazwa; end; end; p["Pierwszy niepusty"]= function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local i=1; local parametry_modul=require("Module:Parametry"); local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"](args,"test"); local licznik=1; while true do local test=args["test"..i]; local _i=args[i]; local zmienna=test or _i; local czy_tak=parametry_modul.CzyTak(zmienna); if(czy_tak)then return (_i)and _i or "{{{"..i.."}}}"; end; if(licznik>=liczba_elementow_w_tablicy_args)then return "";end; if(zmienna)then licznik=licznik+1;end; i=i+1; end; return; end; p["PełnaNazwaOpisuModułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa"); local komunikat = mw.message.new('Scribunto-doc-page-name', '$1'); local zawartosc_komunikatu; if(komunikat:exists())then zawartosc_komunikatu=komunikat:plain(); zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu); else zawartosc_komunikatu="Module:%1/opis"; end; local nazwy_modul=require("Module:Nazwy"); local pelna_nazwa_strony0=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu); local pelna_nazwa_strony2=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"](); local patternopis=mw.ustring.gsub(pelna_nazwa_strony0,"%$1",".-"); if(not mw.ustring.match(pelna_nazwa_strony2,"^"..patternopis.."$"))then local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony2); local przetworzona_nazwa_strony,_=mw.ustring.gsub(nazwa_strony,"(%%)","%%%%"); przetworzona_nazwa_strony,_=mw.ustring.gsub(przetworzona_nazwa_strony,"/%s*$",""); local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony) local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu); return pelna_strona_opisu; else return pelna_nazwa_strony2; end; end; p["WzórDanejPrzestrzeniNazw"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end ) wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); return wzor; end; p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa"); local uchwyt_przestrzeni_nazw; if(mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*[%+%-]?%d+%s*$"))then local identyfikator,_=mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*([%+%-]?%d+)%s*$"); uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.text.trim(identyfikator))]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw_lub_jego_identyfikator]; end; if(uchwyt_przestrzeni_nazw)then return "tak"; else return; end; end; p["WzórNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1"); wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor=wzor.."[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["TekstBezOdwołańDoParametrówWeWzorze"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1"); return tekst; end; p["PrzekształćWzórDoCzystegoTekstu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); return tekst; end; function p.PoliczZbiory(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local liczba_istniejacych_zbiorow=0; local tabela_uchwytow_stron={}; for _,nazwa_strony in ipairs(args) do local uchwyt_strony = mw.title.makeTitle('',nazwa_strony); local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje=tekst_artykulu and tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,}; if(czy_istnieje)then liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1; end; end; return liczba_istniejacych_zbiorow,tabela_uchwytow_stron; end; function p.TransformacjaWzoru(ciag) return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"); end; p["WyświetlajKodySpecjalne"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); return text; end; function p.Wikikod(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); local nko=html_modul.KodHTMLZnaku("{"); local nkz=html_modul.KodHTMLZnaku("}"); local k=html_modul.KodHTMLZnaku("|"); local r=html_modul.KodHTMLZnaku("="); local s=1; repeat repeat text=mw.ustring.gsub(text,"{{{([^{}|]+)|([^{}]*)}}}",nko..nko..nko.."%1"..k.."%2"..nkz..nkz..nkz); text=mw.ustring.gsub(text,"{{{([^{}|]+)}}}",nko..nko..nko.."%1"..nkz..nkz..nkz); until not(mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}")); text=mw.ustring.gsub(text,"{{([^{}]+)}}","&#@p"..s..";%1&#@k"..s..";"); repeat text=mw.ustring.gsub(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";","&#@p"..s..";%1&#@s"..s..";%2&#@k"..s..";"); until not mw.ustring.match(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";"); s=s+1; until not (mw.ustring.match(text,"{{[^{}]+}}") or (mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}"))); for w=1,s-1,1 do repeat text=mw.ustring.gsub(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";([^#{}|].-)".."&#@k"..w..";","{{s|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";#invoke:(.-)".."&#@k"..w..";","{{m|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)","%1"..k.."%2"); until not mw.ustring.match(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)") text=mw.ustring.gsub(text,"&#@p"..w..";(#%w+:.-)".."&#@k"..w..";",nko..nko.."%1"..nkz..nkz); end; text=mw.ustring.gsub(text,"=",r) local mniejszy=html_modul.KodHTMLZnaku("<"); local wiekszy=html_modul.KodHTMLZnaku(">"); text=mw.ustring.gsub(text,"<",mniejszy); text=mw.ustring.gsub(text,">",wiekszy) local kwaratowy_lewy=html_modul.KodHTMLZnaku("["); local kwadratowy_prawy=html_modul.KodHTMLZnaku("]"); local kreska_pionowa=html_modul.KodHTMLZnaku("|"); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)|([^%[%]]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kreska_pionowa.."%2"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"\n#","\n"..hash); text=mw.ustring.gsub(text,"^#",hash); text=frame:getParent():preprocess(text); return text; end; p["WikikodStrony"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); return text; end; function p.LuaSubst(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local strona=args[1] or args["strona"]; if(not parametry_modul.CzyTak(strona))then return "(Bład: nazwa strony jest pusta lub nie podana)";end; local title=mw.title.makeTitle('',strona); if((not title)or (not title.exists))then return "(Bł≥ąd: Strona nie istnieje)";end; local tekst=title:getContent(); local inkludowany=parametry_modul.CzyTak(args["inkludowana"]); if(inkludowany)then tekst,_=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>",""); tekst,_=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); end; return tekst; end; p["RozwiniętyWikikodStrony"]=function (frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame) local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local bezkluczy={["Nazwa strony"]=true,["Nazwa"]=true,["Miano przestrzeni nazw"]=true,["Przestrzeń"]=true,}; if czy_wyspecjalizowana then bezkluczy["wyspecjalizowana"]=true; bezkluczy["nie rozwiń"]=true; end; local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy); local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab}; local czy2=(czy and frame.args); text=(czy2 and (not parametry_modul.CzyTak(frame.args["nie rozwiń"])) or (not czy2 and true)) and frame2:preprocess(text) or text; return text; end; function p.NowaLinia(frame) return "\n"; end; function p.Nowiki(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local PobierzParametr=parametry_modul.PobierzParametr(args); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local h=html_modul.KodHTMLZnaku("#"); local s=html_modul.KodHTMLZnaku(";"); tekst,_=mw.ustring.gsub(tekst,"&#(%d+);",i..h.."%1"..s); tekst,_=mw.ustring.gsub(tekst,"&(%a+);",i.."%1"..s); local sprawdz_modul=require("Module:Sprawdź"); tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},} tekst=frame:callParserFunction('#tag:nowiki',tekst); return tekst; end; function p.FunkcjaLua(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local modul=require("Module:"..(args[1] or args["moduł"])); if(modul)then if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,}) return modul[asgs[2] or args["nazwa"] or args["funkcja"]](args2); end; end; end; p["LiczbaBajtówCiąguDoNormy"] = function(frame) local str=frame.args[1] or frame.args["ciąg"]; local ile=tonumber(frame.args[2] or frame.args["norma"]); if(not ile)then return #str;end; if(#str<=ile)then return #str; end; return nil; end; p["LiczbaStronJakoPozycjeDanejKategorii"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria"; local kat={ ["subcats"]=true, ["files"]=true, ["pages"]=true, } local typ=args["typ"] or "all"; typ=kat[args["typ"]] and args["typ"] or "all"; local nazwy_modul=require("Module:Nazwy"); kategoria=nazwy_modul["NAZWASTRONY"](kategoria); return mw.site.stats.pagesInCategory(kategoria,typ); end; return p; ietzbhdnkbs1eej07my0wpoyxz07l51 438877 438876 2022-08-27T15:30:03Z Persino 2851 Scribunto text/plain local p={}; p["ParsujWywołanieSzablonu"] = function(wywolanie_szablonu) local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^{}|]-}}$"); if(not wywolanie_bez_parametrow)then local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*|.-}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"{{[^{}|]*|([^{}]*)}}"); return ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu); else return nil;end; else local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); return parametry_szablonu; else return nil;end; end; end; function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu) local kawalek_wywolania,dalszy_kawalek_wywolania=mw.ustring.match(parametry_wywolania_szablonu,"^([^|]*)|(.*)$"); if(not kawalek_wywolania)then kawalek_wywolania=parametry_wywolania_szablonu; end; if(not dalszy_kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu); end; return nil; end; function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*$"); if(kawalek_wywolania_element_nienazwany)then tworzona_tabela[#tworzona_tabela+1]=mw.text.trim(kawalek_wywolania_element_nienazwany); return tworzona_tabela; else local kawalek_wywolania_klucz,kawalek_wywolania_wartosc=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*=%s*([^|{}]-)%s*$"); if((kawalek_wywolania_klucz)and(kawalek_wywolania_wartosc))then if(not mw.ustring.match(kawalek_wywolania_klucz,"^%s*%d+%s*$"))then tworzona_tabela[mw.text.trim(kawalek_wywolania_klucz)]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; else tworzona_tabela[tonumber(mw.text.trim(kawalek_wywolania_klucz))]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; end; else return nil; end; end; return nil; end; p["PokażSzablon"]=function(szablon, args) local result = {} local flags = {} table.insert(result, mw.text.nowiki("{{")) if mw.isSubsting() then table.insert(result, "subst:") end table.insert(result, szablon); if args then for k, v in pairs(args) do if (type(k)~="number")then table.insert(result, "|") table.insert(result, tostring(k)) table.insert(result, "=") table.insert(result, mw.text.nowiki(v)) else table.insert(result, "|") table.insert(result, mw.text.nowiki(v)) end end end table.insert(result, mw.text.nowiki("}}")) return table.concat(result) end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa,_=PobierzParametr(); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np") if(nazwa_przestrzeni==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa); elseif(nazwa_przestrzeni==nazwy_np_modul.Main)then return ":"..nazwa; else return nazwa; end; end; p["Pierwszy niepusty"]= function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local i=1; local parametry_modul=require("Module:Parametry"); local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"](args,"test"); local licznik=1; while true do local test=args["test"..i]; local _i=args[i]; local zmienna=test or _i; local czy_tak=parametry_modul.CzyTak(zmienna); if(czy_tak)then return (_i)and _i or "{{{"..i.."}}}"; end; if(licznik>=liczba_elementow_w_tablicy_args)then return "";end; if(zmienna)then licznik=licznik+1;end; i=i+1; end; return; end; p["PełnaNazwaOpisuModułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa"); local komunikat = mw.message.new('Scribunto-doc-page-name', '$1'); local zawartosc_komunikatu; if(komunikat:exists())then zawartosc_komunikatu=komunikat:plain(); zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu); else zawartosc_komunikatu="Module:%1/opis"; end; local nazwy_modul=require("Module:Nazwy"); local pelna_nazwa_strony0=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu); local pelna_nazwa_strony2=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"](); local patternopis=mw.ustring.gsub(pelna_nazwa_strony0,"%$1",".-"); if(not mw.ustring.match(pelna_nazwa_strony2,"^"..patternopis.."$"))then local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony2); local przetworzona_nazwa_strony,_=mw.ustring.gsub(nazwa_strony,"(%%)","%%%%"); przetworzona_nazwa_strony,_=mw.ustring.gsub(przetworzona_nazwa_strony,"/%s*$",""); local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony) local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu); return pelna_strona_opisu; else return pelna_nazwa_strony2; end; end; p["WzórDanejPrzestrzeniNazw"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end ) wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); return wzor; end; p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa"); local uchwyt_przestrzeni_nazw; if(mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*[%+%-]?%d+%s*$"))then local identyfikator,_=mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*([%+%-]?%d+)%s*$"); uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.text.trim(identyfikator))]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw_lub_jego_identyfikator]; end; if(uchwyt_przestrzeni_nazw)then return "tak"; else return; end; end; p["WzórNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1"); wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["TekstBezOdwołańDoParametrówWeWzorze"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1"); return tekst; end; p["PrzekształćWzórDoCzystegoTekstu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); return tekst; end; function p.PoliczZbiory(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local liczba_istniejacych_zbiorow=0; local tabela_uchwytow_stron={}; for _,nazwa_strony in ipairs(args) do local uchwyt_strony = mw.title.makeTitle('',nazwa_strony); local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje=tekst_artykulu and tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,}; if(czy_istnieje)then liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1; end; end; return liczba_istniejacych_zbiorow,tabela_uchwytow_stron; end; function p.TransformacjaWzoru(ciag) return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"); end; p["WyświetlajKodySpecjalne"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); return text; end; function p.Wikikod(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); local nko=html_modul.KodHTMLZnaku("{"); local nkz=html_modul.KodHTMLZnaku("}"); local k=html_modul.KodHTMLZnaku("|"); local r=html_modul.KodHTMLZnaku("="); local s=1; repeat repeat text=mw.ustring.gsub(text,"{{{([^{}|]+)|([^{}]*)}}}",nko..nko..nko.."%1"..k.."%2"..nkz..nkz..nkz); text=mw.ustring.gsub(text,"{{{([^{}|]+)}}}",nko..nko..nko.."%1"..nkz..nkz..nkz); until not(mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}")); text=mw.ustring.gsub(text,"{{([^{}]+)}}","&#@p"..s..";%1&#@k"..s..";"); repeat text=mw.ustring.gsub(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";","&#@p"..s..";%1&#@s"..s..";%2&#@k"..s..";"); until not mw.ustring.match(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";"); s=s+1; until not (mw.ustring.match(text,"{{[^{}]+}}") or (mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}"))); for w=1,s-1,1 do repeat text=mw.ustring.gsub(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";([^#{}|].-)".."&#@k"..w..";","{{s|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";#invoke:(.-)".."&#@k"..w..";","{{m|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)","%1"..k.."%2"); until not mw.ustring.match(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)") text=mw.ustring.gsub(text,"&#@p"..w..";(#%w+:.-)".."&#@k"..w..";",nko..nko.."%1"..nkz..nkz); end; text=mw.ustring.gsub(text,"=",r) local mniejszy=html_modul.KodHTMLZnaku("<"); local wiekszy=html_modul.KodHTMLZnaku(">"); text=mw.ustring.gsub(text,"<",mniejszy); text=mw.ustring.gsub(text,">",wiekszy) local kwaratowy_lewy=html_modul.KodHTMLZnaku("["); local kwadratowy_prawy=html_modul.KodHTMLZnaku("]"); local kreska_pionowa=html_modul.KodHTMLZnaku("|"); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)|([^%[%]]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kreska_pionowa.."%2"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"\n#","\n"..hash); text=mw.ustring.gsub(text,"^#",hash); text=frame:getParent():preprocess(text); return text; end; p["WikikodStrony"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); return text; end; function p.LuaSubst(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local strona=args[1] or args["strona"]; if(not parametry_modul.CzyTak(strona))then return "(Bład: nazwa strony jest pusta lub nie podana)";end; local title=mw.title.makeTitle('',strona); if((not title)or (not title.exists))then return "(Bł≥ąd: Strona nie istnieje)";end; local tekst=title:getContent(); local inkludowany=parametry_modul.CzyTak(args["inkludowana"]); if(inkludowany)then tekst,_=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>",""); tekst,_=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); end; return tekst; end; p["RozwiniętyWikikodStrony"]=function (frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame) local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local bezkluczy={["Nazwa strony"]=true,["Nazwa"]=true,["Miano przestrzeni nazw"]=true,["Przestrzeń"]=true,}; if czy_wyspecjalizowana then bezkluczy["wyspecjalizowana"]=true; bezkluczy["nie rozwiń"]=true; end; local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy); local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab}; local czy2=(czy and frame.args); text=(czy2 and (not parametry_modul.CzyTak(frame.args["nie rozwiń"])) or (not czy2 and true)) and frame2:preprocess(text) or text; return text; end; function p.NowaLinia(frame) return "\n"; end; function p.Nowiki(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local PobierzParametr=parametry_modul.PobierzParametr(args); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local h=html_modul.KodHTMLZnaku("#"); local s=html_modul.KodHTMLZnaku(";"); tekst,_=mw.ustring.gsub(tekst,"&#(%d+);",i..h.."%1"..s); tekst,_=mw.ustring.gsub(tekst,"&(%a+);",i.."%1"..s); local sprawdz_modul=require("Module:Sprawdź"); tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},} tekst=frame:callParserFunction('#tag:nowiki',tekst); return tekst; end; function p.FunkcjaLua(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local modul=require("Module:"..(args[1] or args["moduł"])); if(modul)then if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,}) return modul[asgs[2] or args["nazwa"] or args["funkcja"]](args2); end; end; end; p["LiczbaBajtówCiąguDoNormy"] = function(frame) local str=frame.args[1] or frame.args["ciąg"]; local ile=tonumber(frame.args[2] or frame.args["norma"]); if(not ile)then return #str;end; if(#str<=ile)then return #str; end; return nil; end; p["LiczbaStronJakoPozycjeDanejKategorii"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria"; local kat={ ["subcats"]=true, ["files"]=true, ["pages"]=true, } local typ=args["typ"] or "all"; typ=kat[args["typ"]] and args["typ"] or "all"; local nazwy_modul=require("Module:Nazwy"); kategoria=nazwy_modul["NAZWASTRONY"](kategoria); return mw.site.stats.pagesInCategory(kategoria,typ); end; return p; k9xlic3z1nwogjhbqi5f584mcpbgu0x 438878 438877 2022-08-27T15:39:00Z Persino 2851 Scribunto text/plain local p={}; p["ParsujWywołanieSzablonu"] = function(wywolanie_szablonu) local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^{}|]-}}$"); if(not wywolanie_bez_parametrow)then local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*|.-}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"{{[^{}|]*|([^{}]*)}}"); return ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu); else return nil;end; else local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); return parametry_szablonu; else return nil;end; end; end; function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu) local kawalek_wywolania,dalszy_kawalek_wywolania=mw.ustring.match(parametry_wywolania_szablonu,"^([^|]*)|(.*)$"); if(not kawalek_wywolania)then kawalek_wywolania=parametry_wywolania_szablonu; end; if(not dalszy_kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu); end; return nil; end; function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*$"); if(kawalek_wywolania_element_nienazwany)then tworzona_tabela[#tworzona_tabela+1]=mw.text.trim(kawalek_wywolania_element_nienazwany); return tworzona_tabela; else local kawalek_wywolania_klucz,kawalek_wywolania_wartosc=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*=%s*([^|{}]-)%s*$"); if((kawalek_wywolania_klucz)and(kawalek_wywolania_wartosc))then if(not mw.ustring.match(kawalek_wywolania_klucz,"^%s*%d+%s*$"))then tworzona_tabela[mw.text.trim(kawalek_wywolania_klucz)]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; else tworzona_tabela[tonumber(mw.text.trim(kawalek_wywolania_klucz))]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; end; else return nil; end; end; return nil; end; p["PokażSzablon"]=function(szablon, args) local result = {} local flags = {} table.insert(result, mw.text.nowiki("{{")) if mw.isSubsting() then table.insert(result, "subst:") end table.insert(result, szablon); if args then for k, v in pairs(args) do if (type(k)~="number")then table.insert(result, "|") table.insert(result, tostring(k)) table.insert(result, "=") table.insert(result, mw.text.nowiki(v)) else table.insert(result, "|") table.insert(result, mw.text.nowiki(v)) end end end table.insert(result, mw.text.nowiki("}}")) return table.concat(result) end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa,_=PobierzParametr(); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np") if(nazwa_przestrzeni==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa); elseif(nazwa_przestrzeni==nazwy_np_modul.Main)then return ":"..nazwa; else return nazwa; end; end; p["Pierwszy niepusty"]= function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local i=1; local parametry_modul=require("Module:Parametry"); local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"](args,"test"); local licznik=1; while true do local test=args["test"..i]; local _i=args[i]; local zmienna=test or _i; local czy_tak=parametry_modul.CzyTak(zmienna); if(czy_tak)then return (_i)and _i or "{{{"..i.."}}}"; end; if(licznik>=liczba_elementow_w_tablicy_args)then return "";end; if(zmienna)then licznik=licznik+1;end; i=i+1; end; return; end; p["PełnaNazwaOpisuModułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa"); local komunikat = mw.message.new('Scribunto-doc-page-name', '$1'); local zawartosc_komunikatu; if(komunikat:exists())then zawartosc_komunikatu=komunikat:plain(); zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu); else zawartosc_komunikatu="Module:%1/opis"; end; local nazwy_modul=require("Module:Nazwy"); local pelna_nazwa_strony0=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu); local pelna_nazwa_strony2=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"](); local patternopis=mw.ustring.gsub(pelna_nazwa_strony0,"%$1",".-"); if(not mw.ustring.match(pelna_nazwa_strony2,"^"..patternopis.."$"))then local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony2); local przetworzona_nazwa_strony,_=mw.ustring.gsub(nazwa_strony,"(%%)","%%%%"); przetworzona_nazwa_strony,_=mw.ustring.gsub(przetworzona_nazwa_strony,"/%s*$",""); local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony) local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu); return pelna_strona_opisu; else return pelna_nazwa_strony2; end; end; p["WzórDanejPrzestrzeniNazw"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end ) wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa"); local uchwyt_przestrzeni_nazw; if(mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*[%+%-]?%d+%s*$"))then local identyfikator,_=mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*([%+%-]?%d+)%s*$"); uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.text.trim(identyfikator))]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw_lub_jego_identyfikator]; end; if(uchwyt_przestrzeni_nazw)then return "tak"; else return; end; end; p["WzórNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1"); wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["WzórPełnejNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona); if(nazwa_przestrzeni~="")then nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni); end; nazwa_strony=p["WzórNazwyStrony"](nazwa_przestrzeni); return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony; end; p["TekstBezOdwołańDoParametrówWeWzorze"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1"); return tekst; end; p["PrzekształćWzórDoCzystegoTekstu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); return tekst; end; function p.PoliczZbiory(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local liczba_istniejacych_zbiorow=0; local tabela_uchwytow_stron={}; for _,nazwa_strony in ipairs(args) do local uchwyt_strony = mw.title.makeTitle('',nazwa_strony); local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje=tekst_artykulu and tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,}; if(czy_istnieje)then liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1; end; end; return liczba_istniejacych_zbiorow,tabela_uchwytow_stron; end; function p.TransformacjaWzoru(ciag) return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"); end; p["WyświetlajKodySpecjalne"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); return text; end; function p.Wikikod(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); local nko=html_modul.KodHTMLZnaku("{"); local nkz=html_modul.KodHTMLZnaku("}"); local k=html_modul.KodHTMLZnaku("|"); local r=html_modul.KodHTMLZnaku("="); local s=1; repeat repeat text=mw.ustring.gsub(text,"{{{([^{}|]+)|([^{}]*)}}}",nko..nko..nko.."%1"..k.."%2"..nkz..nkz..nkz); text=mw.ustring.gsub(text,"{{{([^{}|]+)}}}",nko..nko..nko.."%1"..nkz..nkz..nkz); until not(mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}")); text=mw.ustring.gsub(text,"{{([^{}]+)}}","&#@p"..s..";%1&#@k"..s..";"); repeat text=mw.ustring.gsub(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";","&#@p"..s..";%1&#@s"..s..";%2&#@k"..s..";"); until not mw.ustring.match(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";"); s=s+1; until not (mw.ustring.match(text,"{{[^{}]+}}") or (mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}"))); for w=1,s-1,1 do repeat text=mw.ustring.gsub(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";([^#{}|].-)".."&#@k"..w..";","{{s|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";#invoke:(.-)".."&#@k"..w..";","{{m|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)","%1"..k.."%2"); until not mw.ustring.match(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)") text=mw.ustring.gsub(text,"&#@p"..w..";(#%w+:.-)".."&#@k"..w..";",nko..nko.."%1"..nkz..nkz); end; text=mw.ustring.gsub(text,"=",r) local mniejszy=html_modul.KodHTMLZnaku("<"); local wiekszy=html_modul.KodHTMLZnaku(">"); text=mw.ustring.gsub(text,"<",mniejszy); text=mw.ustring.gsub(text,">",wiekszy) local kwaratowy_lewy=html_modul.KodHTMLZnaku("["); local kwadratowy_prawy=html_modul.KodHTMLZnaku("]"); local kreska_pionowa=html_modul.KodHTMLZnaku("|"); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)|([^%[%]]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kreska_pionowa.."%2"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"\n#","\n"..hash); text=mw.ustring.gsub(text,"^#",hash); text=frame:getParent():preprocess(text); return text; end; p["WikikodStrony"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); return text; end; function p.LuaSubst(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local strona=args[1] or args["strona"]; if(not parametry_modul.CzyTak(strona))then return "(Bład: nazwa strony jest pusta lub nie podana)";end; local title=mw.title.makeTitle('',strona); if((not title)or (not title.exists))then return "(Bł≥ąd: Strona nie istnieje)";end; local tekst=title:getContent(); local inkludowany=parametry_modul.CzyTak(args["inkludowana"]); if(inkludowany)then tekst,_=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>",""); tekst,_=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); end; return tekst; end; p["RozwiniętyWikikodStrony"]=function (frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame) local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local bezkluczy={["Nazwa strony"]=true,["Nazwa"]=true,["Miano przestrzeni nazw"]=true,["Przestrzeń"]=true,}; if czy_wyspecjalizowana then bezkluczy["wyspecjalizowana"]=true; bezkluczy["nie rozwiń"]=true; end; local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy); local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab}; local czy2=(czy and frame.args); text=(czy2 and (not parametry_modul.CzyTak(frame.args["nie rozwiń"])) or (not czy2 and true)) and frame2:preprocess(text) or text; return text; end; function p.NowaLinia(frame) return "\n"; end; function p.Nowiki(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local PobierzParametr=parametry_modul.PobierzParametr(args); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local h=html_modul.KodHTMLZnaku("#"); local s=html_modul.KodHTMLZnaku(";"); tekst,_=mw.ustring.gsub(tekst,"&#(%d+);",i..h.."%1"..s); tekst,_=mw.ustring.gsub(tekst,"&(%a+);",i.."%1"..s); local sprawdz_modul=require("Module:Sprawdź"); tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},} tekst=frame:callParserFunction('#tag:nowiki',tekst); return tekst; end; function p.FunkcjaLua(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local modul=require("Module:"..(args[1] or args["moduł"])); if(modul)then if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,}) return modul[asgs[2] or args["nazwa"] or args["funkcja"]](args2); end; end; end; p["LiczbaBajtówCiąguDoNormy"] = function(frame) local str=frame.args[1] or frame.args["ciąg"]; local ile=tonumber(frame.args[2] or frame.args["norma"]); if(not ile)then return #str;end; if(#str<=ile)then return #str; end; return nil; end; p["LiczbaStronJakoPozycjeDanejKategorii"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria"; local kat={ ["subcats"]=true, ["files"]=true, ["pages"]=true, } local typ=args["typ"] or "all"; typ=kat[args["typ"]] and args["typ"] or "all"; local nazwy_modul=require("Module:Nazwy"); kategoria=nazwy_modul["NAZWASTRONY"](kategoria); return mw.site.stats.pagesInCategory(kategoria,typ); end; return p; m5qh1p33p8bx7784chfnc8sg2r5otvc 438879 438878 2022-08-27T15:41:33Z Persino 2851 Scribunto text/plain local p={}; p["ParsujWywołanieSzablonu"] = function(wywolanie_szablonu) local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^{}|]-}}$"); if(not wywolanie_bez_parametrow)then local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*|.-}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"{{[^{}|]*|([^{}]*)}}"); return ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu); else return nil;end; else local parametry_szablonu={}; parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*}}$")); if(parametry_szablonu[0])then local parametry_modul=require("Module:Parametry"); parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",}); return parametry_szablonu; else return nil;end; end; end; function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu) local kawalek_wywolania,dalszy_kawalek_wywolania=mw.ustring.match(parametry_wywolania_szablonu,"^([^|]*)|(.*)$"); if(not kawalek_wywolania)then kawalek_wywolania=parametry_wywolania_szablonu; end; if(not dalszy_kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu); end; return nil; end; function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*$"); if(kawalek_wywolania_element_nienazwany)then tworzona_tabela[#tworzona_tabela+1]=mw.text.trim(kawalek_wywolania_element_nienazwany); return tworzona_tabela; else local kawalek_wywolania_klucz,kawalek_wywolania_wartosc=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*=%s*([^|{}]-)%s*$"); if((kawalek_wywolania_klucz)and(kawalek_wywolania_wartosc))then if(not mw.ustring.match(kawalek_wywolania_klucz,"^%s*%d+%s*$"))then tworzona_tabela[mw.text.trim(kawalek_wywolania_klucz)]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; else tworzona_tabela[tonumber(mw.text.trim(kawalek_wywolania_klucz))]=mw.text.trim(kawalek_wywolania_wartosc); return tworzona_tabela; end; else return nil; end; end; return nil; end; p["PokażSzablon"]=function(szablon, args) local result = {} local flags = {} table.insert(result, mw.text.nowiki("{{")) if mw.isSubsting() then table.insert(result, "subst:") end table.insert(result, szablon); if args then for k, v in pairs(args) do if (type(k)~="number")then table.insert(result, "|") table.insert(result, tostring(k)) table.insert(result, "=") table.insert(result, mw.text.nowiki(v)) else table.insert(result, "|") table.insert(result, mw.text.nowiki(v)) end end end table.insert(result, mw.text.nowiki("}}")) return table.concat(result) end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa,_=PobierzParametr(); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np") if(nazwa_przestrzeni==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa); elseif(nazwa_przestrzeni==nazwy_np_modul.Main)then return ":"..nazwa; else return nazwa; end; end; p["Pierwszy niepusty"]= function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local i=1; local parametry_modul=require("Module:Parametry"); local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"](args,"test"); local licznik=1; while true do local test=args["test"..i]; local _i=args[i]; local zmienna=test or _i; local czy_tak=parametry_modul.CzyTak(zmienna); if(czy_tak)then return (_i)and _i or "{{{"..i.."}}}"; end; if(licznik>=liczba_elementow_w_tablicy_args)then return "";end; if(zmienna)then licznik=licznik+1;end; i=i+1; end; return; end; p["PełnaNazwaOpisuModułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa"); local komunikat = mw.message.new('Scribunto-doc-page-name', '$1'); local zawartosc_komunikatu; if(komunikat:exists())then zawartosc_komunikatu=komunikat:plain(); zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu); else zawartosc_komunikatu="Module:%1/opis"; end; local nazwy_modul=require("Module:Nazwy"); local pelna_nazwa_strony0=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu); local pelna_nazwa_strony2=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"](); local patternopis=mw.ustring.gsub(pelna_nazwa_strony0,"%$1",".-"); if(not mw.ustring.match(pelna_nazwa_strony2,"^"..patternopis.."$"))then local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony2); local przetworzona_nazwa_strony,_=mw.ustring.gsub(nazwa_strony,"(%%)","%%%%"); przetworzona_nazwa_strony,_=mw.ustring.gsub(przetworzona_nazwa_strony,"/%s*$",""); local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony) local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu); return pelna_strona_opisu; else return pelna_nazwa_strony2; end; end; p["WzórDanejPrzestrzeniNazw"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end ) wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa"); local uchwyt_przestrzeni_nazw; if(mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*[%+%-]?%d+%s*$"))then local identyfikator,_=mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*([%+%-]?%d+)%s*$"); uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.text.trim(identyfikator))]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw_lub_jego_identyfikator]; end; if(uchwyt_przestrzeni_nazw)then return "tak"; else return; end; end; p["WzórNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1"); wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["WzórPełnejNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona); if(nazwa_przestrzeni~="")then nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni); end; nazwa_strony=p["WzórNazwyStrony"](nazwa_strony); return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony; end; p["TekstBezOdwołańDoParametrówWeWzorze"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1"); return tekst; end; p["PrzekształćWzórDoCzystegoTekstu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst,_=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); return tekst; end; function p.PoliczZbiory(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local liczba_istniejacych_zbiorow=0; local tabela_uchwytow_stron={}; for _,nazwa_strony in ipairs(args) do local uchwyt_strony = mw.title.makeTitle('',nazwa_strony); local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; local czy_istnieje=tekst_artykulu and tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil); tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,}; if(czy_istnieje)then liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1; end; end; return liczba_istniejacych_zbiorow,tabela_uchwytow_stron; end; function p.TransformacjaWzoru(ciag) return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"); end; p["WyświetlajKodySpecjalne"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); return text; end; function p.Wikikod(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); local nko=html_modul.KodHTMLZnaku("{"); local nkz=html_modul.KodHTMLZnaku("}"); local k=html_modul.KodHTMLZnaku("|"); local r=html_modul.KodHTMLZnaku("="); local s=1; repeat repeat text=mw.ustring.gsub(text,"{{{([^{}|]+)|([^{}]*)}}}",nko..nko..nko.."%1"..k.."%2"..nkz..nkz..nkz); text=mw.ustring.gsub(text,"{{{([^{}|]+)}}}",nko..nko..nko.."%1"..nkz..nkz..nkz); until not(mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}")); text=mw.ustring.gsub(text,"{{([^{}]+)}}","&#@p"..s..";%1&#@k"..s..";"); repeat text=mw.ustring.gsub(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";","&#@p"..s..";%1&#@s"..s..";%2&#@k"..s..";"); until not mw.ustring.match(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";"); s=s+1; until not (mw.ustring.match(text,"{{[^{}]+}}") or (mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}"))); for w=1,s-1,1 do repeat text=mw.ustring.gsub(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";([^#{}|].-)".."&#@k"..w..";","{{s|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2"); until not mw.ustring.match(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)"); text=mw.ustring.gsub(text,"&#@p"..w..";#invoke:(.-)".."&#@k"..w..";","{{m|%1}}"); repeat text=mw.ustring.gsub(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)","%1"..k.."%2"); until not mw.ustring.match(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)") text=mw.ustring.gsub(text,"&#@p"..w..";(#%w+:.-)".."&#@k"..w..";",nko..nko.."%1"..nkz..nkz); end; text=mw.ustring.gsub(text,"=",r) local mniejszy=html_modul.KodHTMLZnaku("<"); local wiekszy=html_modul.KodHTMLZnaku(">"); text=mw.ustring.gsub(text,"<",mniejszy); text=mw.ustring.gsub(text,">",wiekszy) local kwaratowy_lewy=html_modul.KodHTMLZnaku("["); local kwadratowy_prawy=html_modul.KodHTMLZnaku("]"); local kreska_pionowa=html_modul.KodHTMLZnaku("|"); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)|([^%[%]]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kreska_pionowa.."%2"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kwadratowy_prawy..kwadratowy_prawy); text=mw.ustring.gsub(text,"\n#","\n"..hash); text=mw.ustring.gsub(text,"^#",hash); text=frame:getParent():preprocess(text); return text; end; p["WikikodStrony"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); return text; end; function p.LuaSubst(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local strona=args[1] or args["strona"]; if(not parametry_modul.CzyTak(strona))then return "(Bład: nazwa strony jest pusta lub nie podana)";end; local title=mw.title.makeTitle('',strona); if((not title)or (not title.exists))then return "(Bł≥ąd: Strona nie istnieje)";end; local tekst=title:getContent(); local inkludowany=parametry_modul.CzyTak(args["inkludowana"]); if(inkludowany)then tekst,_=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>",""); tekst,_=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); end; return tekst; end; p["RozwiniętyWikikodStrony"]=function (frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame) local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); if((not title)or (not title.exists))then return;end; local text=title:getContent(); text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local bezkluczy={["Nazwa strony"]=true,["Nazwa"]=true,["Miano przestrzeni nazw"]=true,["Przestrzeń"]=true,}; if czy_wyspecjalizowana then bezkluczy["wyspecjalizowana"]=true; bezkluczy["nie rozwiń"]=true; end; local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy); local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab}; local czy2=(czy and frame.args); text=(czy2 and (not parametry_modul.CzyTak(frame.args["nie rozwiń"])) or (not czy2 and true)) and frame2:preprocess(text) or text; return text; end; function p.NowaLinia(frame) return "\n"; end; function p.Nowiki(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local PobierzParametr=parametry_modul.PobierzParametr(args); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local h=html_modul.KodHTMLZnaku("#"); local s=html_modul.KodHTMLZnaku(";"); tekst,_=mw.ustring.gsub(tekst,"&#(%d+);",i..h.."%1"..s); tekst,_=mw.ustring.gsub(tekst,"&(%a+);",i.."%1"..s); local sprawdz_modul=require("Module:Sprawdź"); tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},} tekst=frame:callParserFunction('#tag:nowiki',tekst); return tekst; end; function p.FunkcjaLua(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local modul=require("Module:"..(args[1] or args["moduł"])); if(modul)then if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,}) return modul[asgs[2] or args["nazwa"] or args["funkcja"]](args2); end; end; end; p["LiczbaBajtówCiąguDoNormy"] = function(frame) local str=frame.args[1] or frame.args["ciąg"]; local ile=tonumber(frame.args[2] or frame.args["norma"]); if(not ile)then return #str;end; if(#str<=ile)then return #str; end; return nil; end; p["LiczbaStronJakoPozycjeDanejKategorii"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria"; local kat={ ["subcats"]=true, ["files"]=true, ["pages"]=true, } local typ=args["typ"] or "all"; typ=kat[args["typ"]] and args["typ"] or "all"; local nazwy_modul=require("Module:Nazwy"); kategoria=nazwy_modul["NAZWASTRONY"](kategoria); return mw.site.stats.pagesInCategory(kategoria,typ); end; return p; qeypdst9ccu9i5xyhyblx05i8e3ly0t Moduł:Książkowe 828 56418 438891 427815 2022-08-28T07:44:13Z Persino 2851 Scribunto text/plain local p={}; function NazwaKsiazkawaSilnik(frame,funkcja_nazw) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr("nazwa") or PobierzParametr(1); local bez_transformacji=PobierzParametr("bez transformacji"); local funkcja=PobierzParametr("funkcja"); local modul=PobierzParametr("moduł"); local nazwa_jednostki=require("Module:Nazwy")[funkcja_nazw](pelna_nazwa_strony); return (parametry_modul.CzyTak{[1]=bez_transformacji})and nazwa_jednostki or require("Module:"..(parametry_modul.CzyTak(modul)and modul or "Html"))[parametry_modul.CzyTak(funkcja)and funkcja or "TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_jednostki); end; ---- p["NazwaPrzestrzeni"] = function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENI"); end; p["NazwaPrzestrzeniKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENIKSIĄŻKI"); end; p["NazwaTytułuKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"SUBNAZWAKSIĄŻKI"); end; p["NazwaArtykułuKsiążki"]=function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAARTYKUŁUKSIĄŻKI"); end; ---- p["NazwaKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAKSIĄŻKI"); end; p["PełnaNazwaKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"PEŁNANAZWAKSIĄŻKI"); end; p["PełnaNazwaStronicowejKsiążki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_ksiazki=PobierzParametr("nazwa") or PobierzParametr(1); local bez_transformacji=PobierzParametr("bez transformacji"); local funkcja=PobierzParametr("funkcja"); local modul=PobierzParametr("moduł"); if(not nazwa_ksiazki)then local ksiazkowe_modul=require("Module:Książkowe"); return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; elseif(nazwa_ksiazki=="")then return ""; end; local dwukropek=mw.ustring.match(nazwa_ksiazki,"^:"); if(dwukropek)then local ksiazkowe_modul=require("Module:Książkowe"); return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local ksiazkowe_modul=require("Module:Książkowe"); local czy_nazwa_ksiazki_z_przestrzenia=(nazwa_przestrzeni~=""); if czy_nazwa_ksiazki_z_przestrzenia then return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local title_main=mw.title.makeTitle('',nazwa_ksiazki); if((title_main)and(title_main.exists))then return ksiazkowe_modul["NazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local title_wikijunior=mw.title.makeTitle(nazwy_np_modul.Wikijunior,nazwa_ksiazki); if((title_wikijunior)and(title_wikijunior.exists))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np") return ((nazwy_np_modul.Wikijunior~="")and nazwy_np_modul.Wikijunior..":" or "")..ksiazkowe_modul["NazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](); local pelna_nazwa_ksiazki=nazwa_przestrzeni_ksiazki..((nazwa_ksiazki~="")and("/"..nazwa_ksiazki) or ""); return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=pelna_nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; end; end; end; end; end; return p; nnngsyg14d4mgwzcsy9er8wkgicn4kz 438892 438891 2022-08-28T08:02:36Z Persino 2851 Scribunto text/plain local p={}; function NazwaKsiazkawaSilnik(frame,funkcja_nazw) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr("nazwa") or PobierzParametr(1); local bez_transformacji=PobierzParametr("bez transformacji"); local funkcja=PobierzParametr("funkcja"); local modul=PobierzParametr("moduł"); pelna_nazwa_strony=pelna_nazwa_strony and ((parametry_modul.CzyTak{[1]=bez_transformacji})and pelna_nazwa_strony or require("Module:"..(parametry_modul.CzyTak(modul)and modul or "Html"))[parametry_modul.CzyTak(funkcja)and funkcja or "TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_strony)) or nil; local nazwy_modul=require("Module:Nazwy"); local uzyskana_nazwa_jednostki=nazwy_modul[funkcja_nazw](pelna_nazwa_strony); return uzyskana_nazwa_jednostki; end; ---- p["NazwaPrzestrzeni"] = function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENI"); end; p["NazwaPrzestrzeniKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENIKSIĄŻKI"); end; p["NazwaTytułuKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"SUBNAZWAKSIĄŻKI"); end; p["NazwaArtykułuKsiążki"]=function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAARTYKUŁUKSIĄŻKI"); end; ---- p["NazwaKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"NAZWAKSIĄŻKI"); end; p["PełnaNazwaKsiążki"] = function(frame) return NazwaKsiazkawaSilnik(frame,"PEŁNANAZWAKSIĄŻKI"); end; p["PełnaNazwaStronicowejKsiążki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_ksiazki=PobierzParametr("nazwa") or PobierzParametr(1); local bez_transformacji=PobierzParametr("bez transformacji"); local funkcja=PobierzParametr("funkcja"); local modul=PobierzParametr("moduł"); if(not nazwa_ksiazki)then local ksiazkowe_modul=require("Module:Książkowe"); return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; elseif(nazwa_ksiazki=="")then return ""; end; local dwukropek=mw.ustring.match(nazwa_ksiazki,"^:"); if(dwukropek)then local ksiazkowe_modul=require("Module:Książkowe"); return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local ksiazkowe_modul=require("Module:Książkowe"); local czy_nazwa_ksiazki_z_przestrzenia=(nazwa_przestrzeni~=""); if czy_nazwa_ksiazki_z_przestrzenia then return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local title_main=mw.title.makeTitle('',nazwa_ksiazki); if((title_main)and(title_main.exists))then return ksiazkowe_modul["NazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local title_wikijunior=mw.title.makeTitle(nazwy_np_modul.Wikijunior,nazwa_ksiazki); if((title_wikijunior)and(title_wikijunior.exists))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np") return ((nazwy_np_modul.Wikijunior~="")and nazwy_np_modul.Wikijunior..":" or "")..ksiazkowe_modul["NazwaKsiążki"]{[1]=nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; else local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](); local pelna_nazwa_ksiazki=nazwa_przestrzeni_ksiazki..((nazwa_ksiazki~="")and("/"..nazwa_ksiazki) or ""); return ksiazkowe_modul["PełnaNazwaKsiążki"]{[1]=pelna_nazwa_ksiazki,["bez transformacji"]=bez_transformacji,["funkcja"]=funkcja,["moduł"]=modul}; end; end; end; end; end; return p; 04ecswjuv5b6wnoa338j4byrd95crw2 Szablon:Tabela przykładów użycia szablonów 10 56584 438866 438864 2022-08-27T12:08:00Z Persino 2851 wikitext text/x-wiki <includeonly>{{OverflowWiersz|<!-- -->{{Tabelka|klasa=wikitable|styl=white-space:nowrap|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Wywołanie}}<!-- -->{{Komórka|nagłówek=tak|Efekt}}<!-- -->{{#if:{{{uwagi|}}}|<!-- -->{{Komórka|nagłówek=tak|Uwagi}}<!-- -->}}<!-- -->}}<!-- -->{{{1}}}<!-- -->{{Wiersz}}<!-- -->}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> g8pyomsy0bf208ziz8itincai587irx 438867 438866 2022-08-27T12:22:24Z Persino 2851 wikitext text/x-wiki <includeonly><!-- -->{{Tabelka|klasa=wikitable|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Wywołanie}}<!-- -->{{Komórka|nagłówek=tak|Efekt}}<!-- -->{{#if:{{{uwagi|}}}|<!-- -->{{Komórka|nagłówek=tak|Uwagi}}<!-- -->}}<!-- -->}}<!-- -->{{{1}}}<!-- -->{{Wiersz}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> a381efg0v0hsnqkugbm86b2tm2l8blw Dyskusja wikipedysty:Superjurek 3 57254 438898 438789 2022-08-28T09:58:17Z Persino 2851 /* Poprawki */ wikitext text/x-wiki {{Witaj}}[[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 07:29, 9 kwi 2021 (CEST) == Książka w przestrzeni nazw {{Np|Category|link=tak}} == Dlaczego robisz książkę z kategorii, i jaki masz w tym cel? Do robienia książki służy przestrzeń nazw {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 07:29, 9 kwi 2021 (CEST) :{{ping|Persino}} Odpowiedziałem na Twojej stronie dyskusji. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 11:47, 9 kwi 2021 (CEST) == pytanie o funkcjonalność JavaScriptu do Zbioru zadań maturalnych == Odpowiedź jest na stronie [[w:Dyskusja_wikipedysty:Persino#Odp: Kod JavaScriptu i wywołanie w nim wikikodu]], ostatni post. Robisz moduł w lua i go wywołujesz za pomocą JavaScriptu!, Przy okazji musisz poprosić administratora interfejsu, by napisany skrypt, który wywołuje moduły lua, wykorzystać jako gadżet. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 29 kwi 2021 (CEST) == Skrypt {{LinkModuł2|Zbiór zadań maturalnych}} i jego {{LinkModuł|Zbiór zadań maturalnych/opis|opis}} oraz liczba stron == Do szablonu, w tym opisie tego modułu, {{s|Wysokie ryzyko|liczba{{=}}...}}, możesz użyć szablonu {{s|Łączna liczba stron w kategoriach}}, gdzie jego parametrami są nazwy kategorii, w których chcemy policzyć liczbę artykułów (stron). Jeżeli parametrami będą nazwy kategorii, to uzyskamy łączną liczbę stron z zadaniami. Jak napiszesz takie wywołanie, to możesz napisać: {{Pre start}} {{s|Wysokie ryzyko | liczba {{=}} {{s|Łączna liczba stron w kategoriach | nazwa kategorii pierwszej | nazwa kategorii drugiej | nazwa kategorii trzeciej | ... | nazwa kategorii ostatniej }} }} {{Pre koniec}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:03, 4 lip 2021 (CEST) * Tutaj musisz podać wszystkie najniższe strony kategorii, a nie jedną z wyższych, chyba, że chcesz użyć szablonu {{s|Rekurencyjna łączna liczba stron w kategoriach}} na najwyższej kategorii, a do niższych kategorii, też używamy tego szablonu, a dla najniższych używamy {{s|Łączna liczba stron w kategoriach}}. Szablon ten pierwszy używamy do rekurencyjnego liczenia liczby stron w najniższych kategoriach. Przykład użycia w kategorii: {{LinkKategoria2|Jednostki z problemami z użytymi szablonami ogólnymi}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:15, 8 lip 2021 (CEST) ** {{ping|Persino}} Dzięki! :) [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 21:25, 8 lip 2021 (CEST) == Wywołanie szablonu == Jak wywołujesz szablon, to nie musisz pisać: {{((}}{{LinkSzablon2|Nazwa szablonu}}{{))}}, wystarczy {{((}}{{LinkSzablon|Nazwa szablonu}}{{))}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:36, 4 lip 2021 (CEST) == Szablon {{s|PP2017-do-opisu-LO}} poprawiony == Poprawiłem twój szablon {{s|PP2017-do-opisu-LO}}, możesz tworzyć nadal swój zbiór zadań maturalnych. W razie problemów pytaj się mnie, nawet w przypadku CSS'a! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 22:42, 1 sty 2022 (CET) == Poprawki == {{Ping|Superjurek}}Dokonałem optymalizacji skryptu, zmiany tutaj: [https://pl.wikibooks.org/w/index.php?title=Modu%C5%82%3AZbi%C3%B3r_zada%C5%84_maturalnych&type=revision&diff=438787&oldid=438785]. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:42, 26 sie 2022 (CEST) :{{ping|Persino}} Dziękuję :) [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 13:55, 26 sie 2022 (CEST) ---- {{Ping|Superjurek}}Dokonałem naprawy szablonu {{s|OzdobnaNawigacja}}, teraz na twoich stronach nawigacja powinna się wyświetlać prawidłowo. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 11:58, 28 sie 2022 (CEST) mkj94pg8s8sj0mp3mv0qvzizcq5sjiz 438899 438898 2022-08-28T09:59:19Z Persino 2851 /* Poprawki */ wikitext text/x-wiki {{Witaj}}[[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 07:29, 9 kwi 2021 (CEST) == Książka w przestrzeni nazw {{Np|Category|link=tak}} == Dlaczego robisz książkę z kategorii, i jaki masz w tym cel? Do robienia książki służy przestrzeń nazw {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 07:29, 9 kwi 2021 (CEST) :{{ping|Persino}} Odpowiedziałem na Twojej stronie dyskusji. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 11:47, 9 kwi 2021 (CEST) == pytanie o funkcjonalność JavaScriptu do Zbioru zadań maturalnych == Odpowiedź jest na stronie [[w:Dyskusja_wikipedysty:Persino#Odp: Kod JavaScriptu i wywołanie w nim wikikodu]], ostatni post. Robisz moduł w lua i go wywołujesz za pomocą JavaScriptu!, Przy okazji musisz poprosić administratora interfejsu, by napisany skrypt, który wywołuje moduły lua, wykorzystać jako gadżet. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 29 kwi 2021 (CEST) == Skrypt {{LinkModuł2|Zbiór zadań maturalnych}} i jego {{LinkModuł|Zbiór zadań maturalnych/opis|opis}} oraz liczba stron == Do szablonu, w tym opisie tego modułu, {{s|Wysokie ryzyko|liczba{{=}}...}}, możesz użyć szablonu {{s|Łączna liczba stron w kategoriach}}, gdzie jego parametrami są nazwy kategorii, w których chcemy policzyć liczbę artykułów (stron). Jeżeli parametrami będą nazwy kategorii, to uzyskamy łączną liczbę stron z zadaniami. Jak napiszesz takie wywołanie, to możesz napisać: {{Pre start}} {{s|Wysokie ryzyko | liczba {{=}} {{s|Łączna liczba stron w kategoriach | nazwa kategorii pierwszej | nazwa kategorii drugiej | nazwa kategorii trzeciej | ... | nazwa kategorii ostatniej }} }} {{Pre koniec}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:03, 4 lip 2021 (CEST) * Tutaj musisz podać wszystkie najniższe strony kategorii, a nie jedną z wyższych, chyba, że chcesz użyć szablonu {{s|Rekurencyjna łączna liczba stron w kategoriach}} na najwyższej kategorii, a do niższych kategorii, też używamy tego szablonu, a dla najniższych używamy {{s|Łączna liczba stron w kategoriach}}. Szablon ten pierwszy używamy do rekurencyjnego liczenia liczby stron w najniższych kategoriach. Przykład użycia w kategorii: {{LinkKategoria2|Jednostki z problemami z użytymi szablonami ogólnymi}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:15, 8 lip 2021 (CEST) ** {{ping|Persino}} Dzięki! :) [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 21:25, 8 lip 2021 (CEST) == Wywołanie szablonu == Jak wywołujesz szablon, to nie musisz pisać: {{((}}{{LinkSzablon2|Nazwa szablonu}}{{))}}, wystarczy {{((}}{{LinkSzablon|Nazwa szablonu}}{{))}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:36, 4 lip 2021 (CEST) == Szablon {{s|PP2017-do-opisu-LO}} poprawiony == Poprawiłem twój szablon {{s|PP2017-do-opisu-LO}}, możesz tworzyć nadal swój zbiór zadań maturalnych. W razie problemów pytaj się mnie, nawet w przypadku CSS'a! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 22:42, 1 sty 2022 (CET) == Poprawki == {{Ping|Superjurek}}Dokonałem optymalizacji skryptu, zmiany tutaj: [https://pl.wikibooks.org/w/index.php?title=Modu%C5%82%3AZbi%C3%B3r_zada%C5%84_maturalnych&type=revision&diff=438787&oldid=438785]. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:42, 26 sie 2022 (CEST) :{{ping|Persino}} Dziękuję :) [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 13:55, 26 sie 2022 (CEST) ---- {{Ping|Superjurek}}Dokonałem naprawy szablonu {{s|OzdobnaNawigacja}}, teraz na twoich stronach nawigacja powinna się wyświetlać prawidłowo i estetycznie. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 11:58, 28 sie 2022 (CEST) t2o0dyd38nlroup681h39q9yk5wmk36 Moduł:StronicowyParser/Potrzebne 828 58155 438872 438833 2022-08-27T14:14:50Z Persino 2851 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.ustring.char(127); function p.ZamieniajSzablonyStart(self) self.numer_szablonu={}; self.numer_szablonu["TEMPLATE"]=1; self.numer_szablonu["LINKW"]=1; self.numer_szablonu["LINKZ"]=1; self.numer_szablonu["VAR"]=1; self.numer_szablonu["NOWIKI"]=1; self.numer_szablonu["MATH"]=1; self.numer_szablonu["PRE"]=1; end; function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co) local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127; tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon; self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1; return kod; end; function p.OgolnyWzor(numer_szablonu,co) if(not numer_szablonu)then local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127; return wzor; end; local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127; return wzor; end; function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu) p:ZamieniajSzablonyStart(); if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end; if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end; --- local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu]; tablica_obiektow_strony_dany_modol["TEMPLATE"]={}; tablica_obiektow_strony_dany_modol["LINKW"]={}; tablica_obiektow_strony_dany_modol["LINKZ"]={}; tablica_obiektow_strony_dany_modol["VAR"]={}; tablica_obiektow_strony_dany_modol["NOWIKI"]={}; tablica_obiektow_strony_dany_modol["MATH"]={}; tablica_obiektow_strony_dany_modol["PRE"]={}; --- tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end); tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end); tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end); local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0; repeat tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end); tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end); tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end); tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end); until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0)); return tekst_artykulu; end; function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony) if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];end; local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"(%a+)")); local tak=nil; local szablon=nil; local iter2=nil; local function Iterator() local function IterMain() local obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); szablon=tablica_obiektow_strony[obiekt][kod]; tak=true; iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony); return szablon,kod,obiekt; end; if(not tak)then local szablon,kod,obiekt=IterMain(); return szablon,kod,obiekt; else local szablon,kod,obiekt=iter2(); if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,kod,obiekt=IterMain(); return szablon,kod,obiekt; else return szablon,kod,obiekt; end; end; end; return Iterator; end; function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja) local techniczne_modul=require("Module:Techniczne"); local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony); for szablon,kod,obiekt in iterator do mw.log(szablon,kod,obiekt,tekst_rozwiniety_calego_artykulu,"TYTAN") szablon=((__funkcja)and __funkcja(szablon,kod) or szablon); szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon); tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,obiekt),szablon); end; return tekst_rozwiniety_calego_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=parametry_modul.PobierzArgsParametry(frame,true); end; function p.Args(self) return self.args; end; function p.PelnaNazwaKsiazki(self,frame) return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki end; function p.NazwaArtykuluKsiazki(self,frame) return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or ""); end; function p.ObliczeniaInformacje(self,frame) p:AnalizujArgumentySzablonu(frame); p:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return nil;end; local parametry_modul=require("Module:Parametry"); local args=parametry_modul.CzyTak(self.args["nagłówek"]); local tab_artykul_bez_naglowka=(not naglowek) and {} or nil; self.tab_artykul={}; local html_modul=require("Module:Html"); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]); if(naglowek or not tab_artykul_bez_naglowka[artykul])then if(not naglowek)then tab_artykul_bez_naglowka[artykul]=true; end; table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul); end; end; end; end; self.len_tab_artykul=#self.tab_artykul; return true; end; function p.PomiedzyArtykul(self,frame) self.numer=tonumber(frame.args[1]) or 1; self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1; return self.tab_artykul[self.reszta+1]; end; function p.LosowyArtykul(self,frame) self.numer=tonumber(frame.args[1]) or 1; self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1; return self.tab_artykul[self.reszta]; end; function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty) if(lista_elementow_spisu_tresci==nil)then return nil;end; local twor_listy=""; local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2]; local poziom=1; local num={}; for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do if(licznik==1)then num[#num+1]=1; twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; else if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then num[#num]=num[#num]+1; twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then num[#num+1]=1; poziom=poziom+1; twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2]; elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then local num_length=#num; for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do table.remove(num); end; num[#num]=num[#num]+1; local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2]; poziom=poziom-roznica_poziomow; twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">' .."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2]; end; end; end; twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0); return twor_listy; end; function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij) local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci); local parametry_modul=require("Module:Parametry"); local frame=frame or mw.getCurrentFrame(); local args=frame.args; local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]); if(not toc_czy_tocramka)then local czy_ukryte=twor_listy; local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu"; local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px"; local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%"; local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści"; local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]); local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]); local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]); local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]); twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>"; local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}'; local rozwiniety_wikikod=frame:preprocess(wikikod_menu); return rozwiniety_wikikod; else return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or ""); end; end; function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,__Funkcja, __Funkcja2) if(obiekt~="TEMPLATE")then return;end; uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+",""); local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu]; --mw.logObject(tablica_obiektow_strony,nazwa_modolu); 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; end; GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu); end; function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA) local pozycja_artykulu=nil;local nazwa=nil; local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$") if(not((pozycja_artykulu)and(nazwa)))then pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$"); end; local function Artykul(strona) local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); local parametry=html_modul["ParametryStronyAdresu"](strona); local naglowek=html_modul["NagłówekStronyAdresu"](strona); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona); local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona); local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or ""); else return; end; end; local id=nil; local parametry; local czy_pozycja_artykulu=nil; if(not pozycja_artykulu)then local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); if(link_szablon)then local techniczne_modul=require("Module:Techniczne"); parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon); local szablon=parametry[0]; if(szablon=="SpisTreści")then pozycja_artykulu=parametry[1]; id=true; elseif(szablon=="Sekcja referencyjna")then local podstrona=parametry[3] or parametry["podstrona"]; local strona=parametry[1] or parametry["strona"]; if(not strona)then local nazwy_modul=require("Module:Nazwy"); pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](); else pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona; end; nazwa=parametry["nazwa"] or parametry[2]; else if(szablon=="Link wewnętrzny")then local strona=parametry["strona"]; nazwa=parametry["nazwa"]; pozycja_artykulu=Artykul(strona); czy_pozycja_artykulu=strona; elseif(szablon=="LinkOgólne")then local strona=parametry[1]; nazwa=parametry[2]; local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"]; if(miano_przestrzeni_nazw)then czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); else pozycja_artykulu=Artykul(parametry[1]) czy_pozycja_artykulu=parametry[1]; end; elseif(szablon=="LinkGłówna")then pozycja_artykulu=Artykul(parametry[1]) czy_pozycja_artykulu=parametry[1]; nazwa=parametry[2]; elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); nazwa=parametry[2]; elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); nazwa=parametry[2]; elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); nazwa=parametry[2]; elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then return nil,nil,false,parametry,true; end; end; end; else local parametry_modul=require("Module:Parametry"); pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",}); local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$"); if(czy_pozycja_artykulu)then if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then pozycja_artykulu=czy_pozycja_artykulu; else pozycja_artykulu=nil; end; else local czy_pozycja_artykulu=pozycja_artykulu; pozycja_artykulu=Artykul(pozycja_artykulu); if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then local kod_jezyka_koncowy="pl"; local kod_projektu_koncowy="b"; local linki_modul=require("Module:Linki"); local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{}); return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false; else return {pozycja_artykulu,nazwa},nil,false,nil,false; end; end; end; if((not pozycja_artykulu)and(czy_pozycja_artykulu))then local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]); local linki_modul=require("Module:Linki"); local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{}); return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false; end; return {pozycja_artykulu,nazwa},nil,id,parametry,false; end; function p.NumerObiektu(frame, nazwa_obiektu) local pf=frame:getParent(); local parametry_modul=require("Module:Parametry"); local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil; local nazwa_strony; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local techniczne_modul=require("Module:Techniczne"); local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; nazwa_artykulu=frame.args["nazwa artykułu"]; nazwa_ksiazki=frame.args["nazwa książki"]; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; local czy_aktualna_strona=nil; if((not nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=1; nazwa_strony=""; elseif((nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=2; nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," "); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki); nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," "); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); end; local link = function(adres_linku,nazwa_linku,klasa,styl) local czy_klasa=parametry_modul.CzyTak(klasa); local czy_styl=parametry_modul.CzyTak(styl); if(czy_klasa or czy_styl)then spanramka=mw.html.create('span'); if(czy_klasa)then spanramka:attr("class",klasa);end; if(czy_styl)then spanramka:attr('style',styl);end; spanramka:wikitext(nazwa_linku); local kod_html=spanramka:allDone(); return "[["..adres_linku.."|"..tostring(kod_html).."]]"; else return "[["..adres_linku.."|"..nazwa_linku.."]]"; end; end; local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu) divramka=mw.html.create('div'); local parametry_modul=require("Module:Parametry"); local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"wzór_"..uchwyt); else if(numeracja)then divramka:attr('id',"wzór_"..numeracja); else divramka:attr('id',"wzór_"..uchwyt); end; end; end; if(parametry_modul.CzyTak(styl_main))then divramka:attr('style',styl_main); end; local uchwyt_fun=function() if(parametry_modul.CzyTak(uchwyt))then local divuchwytramka=mw.html.create('div'); divuchwytramka:attr('class',klasa_numeracji); divuchwytramka:attr('style',styl_numeracji); if(parametry_modul.CzyTak(bez_automatu))then divuchwytramka:wikitext('(',uchwyt..")"); else if(numeracja)then divuchwytramka:wikitext('('..numeracja..")"); else divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")"); end; end; divramka:node(divuchwytramka); end; end; local pole_odstepu_fun=function() divramka:addClass("wzory"); local divramka2=mw.html.create('div'); divramka2:attr('style',styl_odstepu); divramka2:wikitext(pole_odstepu); divramka:node(divramka2); end; local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu) if(parametry_modul.CzyTak(opis))then local divramka5=mw.html.create('div') divramka5:attr('class',klasa_opisu) divramka5:attr('style',styl_opisu) divramka5:wikitext(wzor_opisu) divramka:node(divramka5) else local divramka5=mw.html.create('div'); divramka5:attr('style',styl_alternatywy_opisu); divramka:node(divramka5) end; end; if(not czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2); local divramka4=mw.html.create('div'); divramka4:attr('class',klasa_wzoru); divramka4:attr('style',styl_wzoru); divramka4:wikitext(wzor); divramka:node(divramka4); opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu); if(czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; return tostring(divramka:allDone()); end; local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu) local divramka=mw.html.create('div'); divramka:attr('class',klasa); divramka:attr('style',styl); local czy_uchwyt=parametry_modul.CzyTak(uchwyt); if(czy_uchwyt)then if(numeracja)then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"rysunek_"..uchwyt); else divramka:attr('id',"rysunek_"..numeracja); end; else divramka:attr('id',"rysunek_"..uchwyt); end; end; local czy_opis=parametry_modul.CzyTak(opis); local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]"; divramka:wikitext(wywolanie_rysunku); return tostring(divramka:allDone()); end; local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu) local divramka=mw.html.create('div'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',przedrostek.."_"..uchwyt); else divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt)); end; end; divramka:attr('class',klasa); divramka:attr('style',styl); local wikitext=""; if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then wikitext="("..przedrostek2.." "..uchwyt..")"; else if(numeracja)then wikitext="("..przedrostek2.." "..numeracja..")"; else wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")"; end; end; end; if(parametry_modul.CzyTak(styl_naglowka))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_naglowka); spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); divramka:node(spanramka); else divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); end; divramka:wikitext('<BR>'); if(parametry_modul.CzyTak(styl_tekstu))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_tekstu); spanramka:wikitext(tekst); divramka:node(spanramka); else divramka:wikitext(tekst); end; return tostring(divramka:allDone()); end; local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu) local spanramka=mw.html.create('sup'); spanramka:attr('style',klasa); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then spanramka:attr('id',przedrostek_id.."_"..uchwyt); else if(parametry_modul.CzyTak(numeracja))then spanramka:attr('id',przedrostek_id.."_"..numeracja); else spanramka:attr('id',przedrostek_id.."_"..uchwyt); end; end; end; spanramka:attr('style',styl); local smallramka=mw.html.create('small'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then smallramka:wikitext(prefiks..": "..uchwyt); else if(parametry_modul.CzyTak(numeracja))then smallramka:wikitext('['..prefiks..": "..numeracja..']'); else smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']'); end; end; else smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]"); end; spanramka:node(smallramka); return tostring(spanramka:allDone()); end; local nazwa_strony_fun=function(nazwa_strony) if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki) and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return ""; end; return nazwa_strony; end; if(parametry_modul.CzyTak(frame.args["bez automatu"]))then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(uchwyt_obiektu)then return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; else return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; end; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return uchwyt_obiektu; end; else return uchwyt_obiektu; end; end; local tabela_listy_uchwytow_i_numeracji_na_stronie; if(czy_aktualna_strona==nil)then local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(dane_analizy_artykulu)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; end; end; end; end; end; elseif(czy_aktualna_strona==1)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu; if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; elseif(czy_aktualna_strona==2)then tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki; if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; end; end; end; end; if(tabela_listy_uchwytow_i_numeracji_na_stronie)then local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu]; if(spis_uchwytow)then if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then for _, dany_artykul in ipairs(spis_uchwytow)do if(dany_artykul[1]==uchwyt_obiektu)then if(nazwa_obiektu~="Śródtytuł")then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(not dany_artykul[2])then return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; end; return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else if(dany_artykul[2])then local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle()); if(tytul_szablonu=="LinkŚródtytuł")then return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"]) elseif(tytul_szablonu=="LinkŚródtytułTutaj")then return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"]) end; end; end; end; end; end; end; end; if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; end; return p; 6ecnaqeu606vshaya9wn1bmj4lamdby 438873 438872 2022-08-27T14:21:25Z Persino 2851 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.ustring.char(127); function p.ZamieniajSzablonyStart(self) self.numer_szablonu={}; self.numer_szablonu["TEMPLATE"]=1; self.numer_szablonu["LINKW"]=1; self.numer_szablonu["LINKZ"]=1; self.numer_szablonu["VAR"]=1; self.numer_szablonu["NOWIKI"]=1; self.numer_szablonu["MATH"]=1; self.numer_szablonu["PRE"]=1; end; function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co) local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127; tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon; self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1; return kod; end; function p.OgolnyWzor(numer_szablonu,co) if(not numer_szablonu)then local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127; return wzor; end; local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127; return wzor; end; function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu) p:ZamieniajSzablonyStart(); if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end; if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end; --- local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu]; tablica_obiektow_strony_dany_modol["TEMPLATE"]={}; tablica_obiektow_strony_dany_modol["LINKW"]={}; tablica_obiektow_strony_dany_modol["LINKZ"]={}; tablica_obiektow_strony_dany_modol["VAR"]={}; tablica_obiektow_strony_dany_modol["NOWIKI"]={}; tablica_obiektow_strony_dany_modol["MATH"]={}; tablica_obiektow_strony_dany_modol["PRE"]={}; --- tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end); tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end); tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end); local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0; repeat tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end); tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end); tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end); tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end); until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0)); return tekst_artykulu; end; function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony) if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];end; local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"(%a+)")); local tak=nil; local szablon=nil; local iter2=nil; local function Iterator() local function IterMain() local obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); szablon=tablica_obiektow_strony[obiekt][kod]; tak=true; iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony); return szablon,kod,obiekt; end; if(not tak)then local szablon,kod,obiekt=IterMain(); return szablon,kod,obiekt; else local szablon,kod,obiekt=iter2(); if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,kod,obiekt=IterMain(); return szablon,kod,obiekt; else return szablon,kod,obiekt; end; end; end; return Iterator; end; function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja) local techniczne_modul=require("Module:Techniczne"); local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony); for szablon,kod,obiekt in iterator do szablon=((__funkcja)and __funkcja(szablon,kod,obiekt) or szablon); szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon); tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,obiekt),szablon); end; return tekst_rozwiniety_calego_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=parametry_modul.PobierzArgsParametry(frame,true); end; function p.Args(self) return self.args; end; function p.PelnaNazwaKsiazki(self,frame) return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki end; function p.NazwaArtykuluKsiazki(self,frame) return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or ""); end; function p.ObliczeniaInformacje(self,frame) p:AnalizujArgumentySzablonu(frame); p:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return nil;end; local parametry_modul=require("Module:Parametry"); local args=parametry_modul.CzyTak(self.args["nagłówek"]); local tab_artykul_bez_naglowka=(not naglowek) and {} or nil; self.tab_artykul={}; local html_modul=require("Module:Html"); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]); if(naglowek or not tab_artykul_bez_naglowka[artykul])then if(not naglowek)then tab_artykul_bez_naglowka[artykul]=true; end; table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul); end; end; end; end; self.len_tab_artykul=#self.tab_artykul; return true; end; function p.PomiedzyArtykul(self,frame) self.numer=tonumber(frame.args[1]) or 1; self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1; return self.tab_artykul[self.reszta+1]; end; function p.LosowyArtykul(self,frame) self.numer=tonumber(frame.args[1]) or 1; self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1; return self.tab_artykul[self.reszta]; end; function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty) if(lista_elementow_spisu_tresci==nil)then return nil;end; local twor_listy=""; local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2]; local poziom=1; local num={}; for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do if(licznik==1)then num[#num+1]=1; twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; else if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then num[#num]=num[#num]+1; twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then num[#num+1]=1; poziom=poziom+1; twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2]; elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then local num_length=#num; for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do table.remove(num); end; num[#num]=num[#num]+1; local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2]; poziom=poziom-roznica_poziomow; twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">' .."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]"; liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2]; end; end; end; twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0); return twor_listy; end; function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij) local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci); local parametry_modul=require("Module:Parametry"); local frame=frame or mw.getCurrentFrame(); local args=frame.args; local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]); if(not toc_czy_tocramka)then local czy_ukryte=twor_listy; local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu"; local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px"; local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%"; local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści"; local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]); local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]); local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]); local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]); twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>"; local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}'; local rozwiniety_wikikod=frame:preprocess(wikikod_menu); return rozwiniety_wikikod; else return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or ""); end; end; function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,__Funkcja, __Funkcja2) if(obiekt~="TEMPLATE")then return;end; uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+",""); local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu]; --mw.logObject(tablica_obiektow_strony,nazwa_modolu); 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; end; GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu); end; function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA) local pozycja_artykulu=nil;local nazwa=nil; local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$") if(not((pozycja_artykulu)and(nazwa)))then pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$"); end; local function Artykul(strona) local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); local parametry=html_modul["ParametryStronyAdresu"](strona); local naglowek=html_modul["NagłówekStronyAdresu"](strona); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona); local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona); local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or ""); else return; end; end; local id=nil; local parametry; local czy_pozycja_artykulu=nil; if(not pozycja_artykulu)then local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); if(link_szablon)then local techniczne_modul=require("Module:Techniczne"); parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon); local szablon=parametry[0]; if(szablon=="SpisTreści")then pozycja_artykulu=parametry[1]; id=true; elseif(szablon=="Sekcja referencyjna")then local podstrona=parametry[3] or parametry["podstrona"]; local strona=parametry[1] or parametry["strona"]; if(not strona)then local nazwy_modul=require("Module:Nazwy"); pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](); else pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona; end; nazwa=parametry["nazwa"] or parametry[2]; else if(szablon=="Link wewnętrzny")then local strona=parametry["strona"]; nazwa=parametry["nazwa"]; pozycja_artykulu=Artykul(strona); czy_pozycja_artykulu=strona; elseif(szablon=="LinkOgólne")then local strona=parametry[1]; nazwa=parametry[2]; local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"]; if(miano_przestrzeni_nazw)then czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); else pozycja_artykulu=Artykul(parametry[1]) czy_pozycja_artykulu=parametry[1]; end; elseif(szablon=="LinkGłówna")then pozycja_artykulu=Artykul(parametry[1]) czy_pozycja_artykulu=parametry[1]; nazwa=parametry[2]; elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); nazwa=parametry[2]; elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); nazwa=parametry[2]; elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1]; pozycja_artykulu=Artykul(czy_pozycja_artykulu); nazwa=parametry[2]; elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then return nil,nil,false,parametry,true; end; end; end; else local parametry_modul=require("Module:Parametry"); pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",}); local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$"); if(czy_pozycja_artykulu)then if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then pozycja_artykulu=czy_pozycja_artykulu; else pozycja_artykulu=nil; end; else local czy_pozycja_artykulu=pozycja_artykulu; pozycja_artykulu=Artykul(pozycja_artykulu); if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then local kod_jezyka_koncowy="pl"; local kod_projektu_koncowy="b"; local linki_modul=require("Module:Linki"); local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{}); return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false; else return {pozycja_artykulu,nazwa},nil,false,nil,false; end; end; end; if((not pozycja_artykulu)and(czy_pozycja_artykulu))then local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]); local linki_modul=require("Module:Linki"); local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{}); return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false; end; return {pozycja_artykulu,nazwa},nil,id,parametry,false; end; function p.NumerObiektu(frame, nazwa_obiektu) local pf=frame:getParent(); local parametry_modul=require("Module:Parametry"); local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil; local nazwa_strony; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local techniczne_modul=require("Module:Techniczne"); local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; nazwa_artykulu=frame.args["nazwa artykułu"]; nazwa_ksiazki=frame.args["nazwa książki"]; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; local czy_aktualna_strona=nil; if((not nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=1; nazwa_strony=""; elseif((nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=2; nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," "); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); else nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki); nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki); nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," "); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); end; local link = function(adres_linku,nazwa_linku,klasa,styl) local czy_klasa=parametry_modul.CzyTak(klasa); local czy_styl=parametry_modul.CzyTak(styl); if(czy_klasa or czy_styl)then spanramka=mw.html.create('span'); if(czy_klasa)then spanramka:attr("class",klasa);end; if(czy_styl)then spanramka:attr('style',styl);end; spanramka:wikitext(nazwa_linku); local kod_html=spanramka:allDone(); return "[["..adres_linku.."|"..tostring(kod_html).."]]"; else return "[["..adres_linku.."|"..nazwa_linku.."]]"; end; end; local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu) divramka=mw.html.create('div'); local parametry_modul=require("Module:Parametry"); local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"wzór_"..uchwyt); else if(numeracja)then divramka:attr('id',"wzór_"..numeracja); else divramka:attr('id',"wzór_"..uchwyt); end; end; end; if(parametry_modul.CzyTak(styl_main))then divramka:attr('style',styl_main); end; local uchwyt_fun=function() if(parametry_modul.CzyTak(uchwyt))then local divuchwytramka=mw.html.create('div'); divuchwytramka:attr('class',klasa_numeracji); divuchwytramka:attr('style',styl_numeracji); if(parametry_modul.CzyTak(bez_automatu))then divuchwytramka:wikitext('(',uchwyt..")"); else if(numeracja)then divuchwytramka:wikitext('('..numeracja..")"); else divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")"); end; end; divramka:node(divuchwytramka); end; end; local pole_odstepu_fun=function() divramka:addClass("wzory"); local divramka2=mw.html.create('div'); divramka2:attr('style',styl_odstepu); divramka2:wikitext(pole_odstepu); divramka:node(divramka2); end; local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu) if(parametry_modul.CzyTak(opis))then local divramka5=mw.html.create('div') divramka5:attr('class',klasa_opisu) divramka5:attr('style',styl_opisu) divramka5:wikitext(wzor_opisu) divramka:node(divramka5) else local divramka5=mw.html.create('div'); divramka5:attr('style',styl_alternatywy_opisu); divramka:node(divramka5) end; end; if(not czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2); local divramka4=mw.html.create('div'); divramka4:attr('class',klasa_wzoru); divramka4:attr('style',styl_wzoru); divramka4:wikitext(wzor); divramka:node(divramka4); opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu); if(czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; return tostring(divramka:allDone()); end; local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu) local divramka=mw.html.create('div'); divramka:attr('class',klasa); divramka:attr('style',styl); local czy_uchwyt=parametry_modul.CzyTak(uchwyt); if(czy_uchwyt)then if(numeracja)then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"rysunek_"..uchwyt); else divramka:attr('id',"rysunek_"..numeracja); end; else divramka:attr('id',"rysunek_"..uchwyt); end; end; local czy_opis=parametry_modul.CzyTak(opis); local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]"; divramka:wikitext(wywolanie_rysunku); return tostring(divramka:allDone()); end; local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu) local divramka=mw.html.create('div'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',przedrostek.."_"..uchwyt); else divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt)); end; end; divramka:attr('class',klasa); divramka:attr('style',styl); local wikitext=""; if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then wikitext="("..przedrostek2.." "..uchwyt..")"; else if(numeracja)then wikitext="("..przedrostek2.." "..numeracja..")"; else wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")"; end; end; end; if(parametry_modul.CzyTak(styl_naglowka))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_naglowka); spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); divramka:node(spanramka); else divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); end; divramka:wikitext('<BR>'); if(parametry_modul.CzyTak(styl_tekstu))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_tekstu); spanramka:wikitext(tekst); divramka:node(spanramka); else divramka:wikitext(tekst); end; return tostring(divramka:allDone()); end; local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu) local spanramka=mw.html.create('sup'); spanramka:attr('style',klasa); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then spanramka:attr('id',przedrostek_id.."_"..uchwyt); else if(parametry_modul.CzyTak(numeracja))then spanramka:attr('id',przedrostek_id.."_"..numeracja); else spanramka:attr('id',przedrostek_id.."_"..uchwyt); end; end; end; spanramka:attr('style',styl); local smallramka=mw.html.create('small'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then smallramka:wikitext(prefiks..": "..uchwyt); else if(parametry_modul.CzyTak(numeracja))then smallramka:wikitext('['..prefiks..": "..numeracja..']'); else smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']'); end; end; else smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]"); end; spanramka:node(smallramka); return tostring(spanramka:allDone()); end; local nazwa_strony_fun=function(nazwa_strony) if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki) and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then return ""; end; return nazwa_strony; end; if(parametry_modul.CzyTak(frame.args["bez automatu"]))then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(uchwyt_obiektu)then return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; else return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; end; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return uchwyt_obiektu; end; else return uchwyt_obiektu; end; end; local tabela_listy_uchwytow_i_numeracji_na_stronie; if(czy_aktualna_strona==nil)then local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(dane_analizy_artykulu)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; end; end; end; end; end; elseif(czy_aktualna_strona==1)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu; if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; elseif(czy_aktualna_strona==2)then tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki; if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; end; end; end; end; if(tabela_listy_uchwytow_i_numeracji_na_stronie)then local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu]; if(spis_uchwytow)then if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then for _, dany_artykul in ipairs(spis_uchwytow)do if(dany_artykul[1]==uchwyt_obiektu)then if(nazwa_obiektu~="Śródtytuł")then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(not dany_artykul[2])then return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; end; return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else if(dany_artykul[2])then local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle()); if(tytul_szablonu=="LinkŚródtytuł")then return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"]) elseif(tytul_szablonu=="LinkŚródtytułTutaj")then return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"]) end; end; end; end; end; end; end; end; if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; end; return p; lwlwlhk0abnbaeleb6zkmedlfdg1052 Szablon:Bdo/opis 10 58869 438881 438856 2022-08-27T15:57:17Z Persino 2851 /* Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}} */ wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy kierunku układania tekstu od lewej do prawej lub odwrotnie, do tego szablonu jest bardzo potrzebny parametr: {{Parametr|styl|direction:ltr}} lub {{Parametr|styl|direction:rtl}}. To jest oparte na obsłudze tagów: {{Tag|bdo}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami. == Opis parametrów == ; Wywołanie {{pre|{{s|Bdo|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}} Szablon {{s|Bdo}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej. ; Parametry * {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany, * {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany, * {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny, * {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny, * {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny. ---- Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany. == Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) == Szablon {{s|Bdo}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się: ; Szablon {{s|Bdo}} {{PreWikikod|Bdo}} == Przykłady == Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu. ;Przykład {{Pre|Oto jest tekst przed tym szablonem: {{s|Bdo|Oto jest tekst do analizy}}, a tutaj po.}} ;Wynik {{Pre|Oto jest tekst przed tym szablonem: {{Bdo|Oto jest tekst do analizy}}, a tutaj po.}} === Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}}=== Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu: {{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}} Zatem: <templatestyles src="Szablon:Znacznik/przykłady.css" /> {{OverflowWiersz|styl=white-space:nowrap;|1= {{Tabela przykładów użycia szablonów| {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=klasa=tło obramowanie|4=id=przykład1}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=klasa=czcionka kolor tło obramowanie}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=id=przykład}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=klasa=tło obramowanie|4=id=przykład1}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=klasa=czcionka kolor tło obramowanie}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=id=przykład}} }} }} Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|bdo}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Tekst, któremu można nadać pewne cechy.", "type": "string", "required": true }, "styl": { "description": "Styl CSS, właściwości i ich wartości.", "type": "string" }, "klasa": { "description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.", "type": "string" }, "id": { "description": "Unikatowy identyfikator.", "type": "string", "suggested": true }, "atrybuty": { "description": "Atrybuty, inne niż: id, style i class.", "type": "string" } }, "paramOrder": [ "1", "id", "styl", "klasa", "atrybuty" ], "description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>." } </templatedata> == Zobacz też == * {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami. {{Szablony ramek formułujące kod}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony do formatowania tekstu | Szablony ramek tworzące kod HTML | Szablony znaczników }} </includeonly> cif17m8kmagm7kvrf4wo6yibt9ajq6n