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]] {{{nagłówek|Dokumentacja{{#switch: {{NAMESPACE}}|Szablon= szablonu|Moduł= modułu|#default=}}}}}</span>
<span class="plainlinks" id="doc_editlinks" style="margin-left: 1em; font-size: 90%;">{{
#ifexist: {{{1|{{Dokumentacja/nazwa}}}}}
|<!-- /opis istnieje -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}}} zobacz]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=edit}} edytuj]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=history}} historia]] [{{odśwież|odśwież}}]
|<!-- nie ma /opis -->{{
#if: {{{zawartość|}}}
|[{{odśwież|odśwież}}]
|<!-- no content -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa }}}}}|action=edit&preload={{{preload opisu|Szablon:Dokumentacja/preload}}}}} stwórz]] [{{odśwież|odśwież}}]
}}
}}</span></div>
}}<!-- endif heading -->
{{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]]. }}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></big> || <small>U+FFFD</small><br /><big>�</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></big> || <small>U+FFFD</small><br /><big>�</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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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="({{[&#;!%(%)]+}})";
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